摘要: 1、设置环境变量 用户可以在GDB的调试环境中定义自己需要的变量,用来保存一些调试程序中的运行数据。要定义一个GDB的变量很简单,只需使用GDB的set命令。 GDB的环境变量和Linux一样,也是以$起头。如: (gdb)set $foo=xxx 使用环境变量时,GDB会在第一次使用时创建这个变量,而在以后的使用中,则直接对其赋值。环境变量没有类型,可以给环境变量定义任意的类型,包括结构体和数组。如果要查看当前的所有环境变量,可以输入: (gdb)show convenience 正是由于环境变量和程序变量可以相互使用,使得程序调试更为灵活便捷。例如: (gdb)set $i=... 阅读全文
posted @ 2013-11-17 20:38 ITtecman 阅读(3136) 评论(0) 推荐(1) 编辑
摘要: 1、GDB调试器概述 GDB是GNU开源组织发布的一个强大的程序调试工具,具有查看程序运行状态、设置断点、查看表达式、显示变量等众多功能,是程序员进行Linux编程必须要掌握的一种调试技术。 GDB调试工具的优势主要包含以下5个方面: (1)用户可以在程序运行过程中查看运行的状态; (2)用户可以在程序中任何需要的地方设置断点,并暂停程序的执行; (3)当程序暂停时,用户可以随时查看程序中各表达式、变量值以及内存值; (4)程序暂停时用户可以进行单步调试,依此检查程序每步运行的结果是否跟预测值一致,并且可以检查每步出现的错误; (5)用户可以改变程序中的变量或者执行顺序,来验证程... 阅读全文
posted @ 2013-11-17 17:32 ITtecman 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 静态库的制作步骤: (1)gcc -c mylib.c -o mylib.o (2)ar rc libmylib.a mylib.o 动态库的制作步骤: gcc -shared mylib.c -o libmylib.so 如何判断某个可执行二进制文件含有什么动态解析函数库?用ldd就可以知道。例如:想要知道/usr/bin/passwd这个程序含有的动态函数库有哪些,可以这样做:#ldd /usr/bin/passwd 将动态函数库加载到高速缓存当中:(1)在/etc/ld.so.conf里面写下想要读入高速缓存当中的动态函数库所在的目录 #vim /etc/ld.so... 阅读全文
posted @ 2013-11-17 15:11 ITtecman 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 静态函数库与动态函数库基本认知:GCC编译基础流程包括:预处理、编译、汇编、链接。注意在特定语义环境中区别第一个编译和第二个编译的含义。静态链接:链接器在链接时将库的内容加入到可执行程序中动态链接:链接器在链接时仅仅建立与所需库函数之间的链接关系,在程序运行时才将所需资源调入可执行程序中静态函数库(静态链接库):程序编译时使用 被称作:archive 扩展名:.a 命名格式:libxxx.a 独立执行:编译成功的可执行文件可以独立执行 升级难易度:难动态函数库(动态链接库):程序运行时使用 被称作:shared object 扩展名:.so 命名格式:libxxx.so 独... 阅读全文
posted @ 2013-11-17 09:56 ITtecman 阅读(682) 评论(0) 推荐(0) 编辑