我遇到了崩溃(分段错误),但我无法找到它发生的位置,因为gdb会在尝试bt
或frame #
时崩溃。这种情况发生在不同的系统上(尝试过CentOS 7和Ubuntu 17.04),因此它看起来不像特定的版本。
有没有其他我可以使用的调试器,还是有办法让gdb更稳定?
有没有其他我可以使用的调试器
你可以试试LLDB。
有没有办法让gdb更稳定?
神奇的“ - run-without-bugs”标志;-)
说真的,GDB中的任何崩溃都是一个bug,你应该在GDB buganizer中报告它。
如果您无法提供可重现的测试用例,您至少可以在其自身下运行GDB,并找出崩溃的位置:
gdb -ex 'set prompt (top) ' -ex run --args gdb -ex run /path/to/your/a.out
... your program will crash, you will get (gdb) prompt
(gdb) where
... now GDB will crash, and you will get "outer" GDB (top) prompt
(top) where
... you should get a stack trace for the "inner" GDB crash.