加了-g选项仍然无调试符号
看标题像是一个很怪异的问题,其实只是一个小失误导致。
今天下午,一同事过来说,已经加了-g选项进行编译,但gdb调试仍然提示无调试符号。我过去看看,先输入make clean、make(工程不大,就是一个cgi程序)重新编译试试,看编译信息的确显示有-g选项,优化选项为-O,但gdb调试显示“No symbol table is loaded. Use the “file” command.”。
试试nm命令:
[root@localhost xxx]# nm xxx.cgi nm: xxx.cgi: no symbols
再试试file命令:
[root@localhost xxx]# file xxx.cgi xxx.cgi: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
怎么会是stripped呢?检查Makefile文件,all目标下有一条命令摆在那:strip $(TARGET)。杯具。
转载请保留地址:http://www.lenky.info/archives/2012/02/1108 或 http://lenky.info/?p=1108
备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来信讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。
法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。