我对 Linux 工作还比较陌生,所以我可能忽略了一些简单的事情。
在 Windows 上,如果我的程序导致段错误,我习惯于获得一个包含一些有用信息的弹出窗口。效果如下:在地址 0x**** 访问冲突读取/写入/执行内存
、堆栈溢出
等
在通过 QT Creator 进行 Linux 调试时,我得到的是:
The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV
Signal meaning : Segmentation fault
有没有办法让这些消息提供与 Windows 对应消息相同的信息,或者至少提供故障类型(内存违规、堆栈溢出等)?我当然可以使用 GDB 调试程序,但是这个弹出窗口通常让我很快就知道问题出在哪里,而不是必须在崩溃站点周围挖掘。
最佳答案
是的,gdb 不会尝试解释崩溃的原因。我想也许它可以在这里做得更多。
有关导致崩溃的确切原因的更多信息,您可以查看 $_siginfo。 gdb 手册中有关于此的部分。不幸的是,它相当晦涩。
关于c++ - 使用 GCC 和 GDB 的 Ubuntu 上的 QT Creator - 调试 C++ - 更详细的段错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124013/