c++ - 使用 GCC 和 GDB 的 Ubuntu 上的 QT Creator - 调试 C++ - 更详细的段错误消息

标签 c++ linux gcc gdb qt-creator

我对 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/

相关文章:

c++ - 是否有以相反顺序填充缓冲区的 memset 函数实现?

c++ - 在 ';' 之前缺少 'template<'

linux - 我可以 grep telnet 命令输出吗?

linux - nasm 程序集 sys_execve/bin/sh

c - 使用新的自定义编译构建版本的 glibc/libc.so,在出现 “relocation has invalid symbol index” 错误期间会发生什么?

c - AVR-GCC Makefile 链接问题

c++ - CMake 和 Visual Studio : How to get a quick, 安静的命令行构建?

c++ - 如何编写用于 set_symmetric_difference [C++] 的字符串比较器?

linux - 如何使用 ed 在最后一次模式匹配后添加文本

c++ - GNU C++ 如何检查 -std=c++0x 何时生效?