在Qt中重现一个bug:调试代码时出现分段错误
Reproducing a bug in Qt: Segmentation fault when debugging code
我是Linux、Qt的新手,c++相对初级;所以我遇到的问题很可能是我自己的错……如有任何帮助,不胜感激。
我遇到分割错误时,试图一步一步地去基本上任何项目。例如,QtCreator中包含的表模型项目。在发布或调试中,项目运行没有任何问题。但是,如果我尝试添加断点(当然是在调试中)并逐步执行代码,我很快得到以下随机错误:
下级停止,因为它收到了来自操作系统的信号。
信号名称:SIGSEGV信号信号含义:段错误
QtCreator此时显示了一些小的汇编代码:
Dump of assembler code for function __nptl_death_event:
0x00e80d00 <+0>: push %ebp
0x00e80d01 <+1>: mov %esp,%ebp
0x00e80d03 <+3>: pop %ebp
0x00e80d04 <+4>: ret
End of assembler dump.
I am running:
Qt Creator 2.1.0基于Qt 4.7.2(32位)在Ubuntu 11.04上通过VMWare在Mac上运行
我不知道VMWare是否会成为潜在的问题来源。我怀疑我在调试时也可能做错了什么,因为我不理解外部/附加条款(我还没有时间做一些研究,这么多的事情要在同一时间发现,有点压倒性…)
谢谢你的帮助。
我认为这是您的GDB副本的问题-更具体地说,是模块或库不匹配。尝试重新编译GDB,以便您知道它将与本地glibc和pthreads库一起工作。
作为旁注,该汇编代码是一个空函数。它建立一个堆栈帧,然后将其撕下来,然后返回。它似乎使用了cdecl调用约定,这意味着编写它的库是C(而不是c++)
相关文章:
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 如何在大型c++项目的可视化代码中设置调试
- 为什么我的 VS 代码调试器在我的C++代码周围弹跳?
- 如何在 WSL 上获取 VS 代码以调试我的C++代码?
- 带有 GDB 调试器的 VS 代码内存视图
- 当前不会命中断点。没有调试器目标代码类型的可执行代码与此文件关联
- 添加新行时工作代码引发异常.调试技巧?
- 调试代码块中的数组
- 使用 ssh 重新连接到远程 Ubuntu 机器后,如何继续使用 gdb 调试 c++ 代码?
- 如何在可视化代码中生成用于 c++ 开发的调试器?
- 代码适用于调试,但不适用于发布
- Visual Studio 发布模式阻止在调试模式下执行的代码.使用 WinHTTP 和多线程
- 如何使用 GDB 从功能C++逐步调试到 std::function 用户代码?
- 使用Qt Creator在调试模式下编译一段代码
- 如何使用 cmake 在代码中包含、构建和调试共享库 (.so)?
- 如何在Mac上调试VS code上的C++代码
- 在源文件中包含额外的调试信息,以便在代码::块中使用gdb进行调试
- 使用Visual Studio code Ubuntu调试c++代码
- 在使用 vs 代码调试文件时,如何将文件传递到我的程序中
- 从c#代码调试c++ exe