我有一些与GDB的麻烦。 这是我的代码在一个名为main.cpp的文件中
#include <iostream> void myfunc(); int main(){ char msg[] = "Hello World!"; myfunc(); std::cout << msg << std::endl; return 0; } void myfunc(){ int boo = 16; }
我用这个命令来编译这段代码:
g++ -g -Wall main.cpp -o foo
接下来,我使用gdb:
$ gdb foo (gdb) start Temporary breakpoint 1 at 0x80487c3 Starting program: /home/laptop/workspace/foo Temporary breakpoint 1, 0x080487c3 in main () (gdb) s Single stepping until exit from function main, which has no line number information. Hello World! __libc_start_main (main=0x80487c0 <main>, argc=1, ubp_av=0xbffff3a4, init=0x80488b0 <__libc_csu_init>, fini=0x8048920 <__libc_csu_fini>, rtld_fini=0xb7fed280 <_dl_fini>, stack_end=0xbffff39c) at libc-start.c:258 258 libc-start.c: No such file or directory.
我做错了什么 ? 我使用-g选项,但我仍然有这个错误。
configuration:
我安装了一些经典的工具:sudo apt-get install
预先感谢您的回答:-)
谢谢您的回答。 我发现什么是错的。 正如jcm所说,我的gcc是相对较新的。 我已经更新gdb到最新的当前版本是GNU gdb(GDB)7.6。 现在这个完美的作品。
顺便说一下,用g ++(Ubuntu / Linaro 4.6.4-1ubuntu1〜12.04)4.6.4,gdb(Ubuntu / Linaro 7.4-2012.04-0ubuntu2.1)7.4-2012.04完美的工作。
谢谢大家。
编译使用-g
和-ggdb
标志。
你的命令应该是
g++ -g -ggdb -Wall main.cpp -o foo
也尝试使用“-Og”。 也许这将有所帮助,因为@KevinDTimm写道:编译器可能会优化它。
参考: