运维开发网

调试C运行时

运维开发网 https://www.qedev.com 2020-05-08 07:55 出处:网络 作者:运维开发网整理
我想详细了解使用GDB在main()之前和之后发生的事情.仅仅用-g重新编译glibc并链接它就足够了吗? 如果你想使用调试器,你可以这样使用GDB: >安装`glibc`包的debug-info(here是使用Fedora的方法,我不知道其他的发行版) >或将GDB指向一致的调试文件目录: (gdb) show debug-file-directory The directory where s
我想详细了解使用GDB在main()之前和之后发生的事情.仅仅用-g重新编译glibc并链接它就足够了吗? 如果你想使用调试器,你可以这样使用GDB:

>安装`glibc`包的debug-info(here是使用Fedora的方法,我不知道其他的发行版)

>或将GDB指向一致的调试文件目录:

(gdb) show debug-file-directory
The directory where separate debug symbols are searched for is "/usr/lib/debug".
(gdb) set debug-file-directory ...

(在我的系统中是/usr/lib/debug/lib64/libc-2.14.so.debug)

>告诉GDB在你的`main`之前显示回溯:

(gdb) show backtrace past-entry
Whether backtraces should continue past the entry point of a program is off.
(gdb) set backtrace past-entry on

>那么你应该看看你在寻找什么,并浏览它:

(gdb) where
#0  main () at test.c:4
#1  __libc_start_main (main=0x40050f <main>, argc=1,...) at libc-start.c:226
#2  _start ()
0

精彩评论

暂无评论...
验证码 换一张
取 消