摘要:今天为调试一段代码,使用gcc将程序用-g选项重新编译。但是使用gdb进行debug时,仍然出现“no debug symbols found”的错误。仔细检查了一下Makefile,原来后面定义的连接选项中指定了-s。gcc的文档中说明如下: -s Remove all symbol table and relocation information from the executable. 去掉...
阅读全文
摘要:作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。 ldd命令原理 1、首先ldd不是个可执行程式,而只是个shell脚本 2、ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOS...
阅读全文
摘要:在Makefile里,如果有变量是通过make的命令行参数设置的,那么Makefile中对这个变量的赋值会被忽略。如果一定要设置这种参数的值,那么可以使用override,例如 override LOCALE = zh_CN
阅读全文
摘要:近来linux系统调试过程中,经常使用strace来查看系统调用和接收的信号。strace常用的参数为: -c 统计每种系统调用所执行的时间,调用次数,出错次数。 -p 跟踪指定的进程 -f 跟踪由fork子进程系统调用 -F 跟踪vfork子进程系统调用,与-f同时出现时, vfork不被跟踪 -o filename 可以将输出写入到filename文件中,而非stdout -ff 常与-o选项...
阅读全文