我在 Windows 7 机器上使用 Qt 5.2.1 MinGW 32bit 和来自 MinGW 4.8 的 gdb。当我尝试单步执行代码时,会出现一种奇怪的行为。
QFileDialog open;
open.setDefaultSuffix("tst");
QString fileName=open.getSaveFileName(this,tr("New File"),"",tr("Test File (*.tst)"));
if(fileName!="")
{
...
我在第一行设置断点。单步执行直到第 3 行,然后,在选择文件后,gdb 说:
无法插入断点 -1217。访问内存地址 0x7219cd30 时出错:输入/输出错误。
当我在 if 或之后设置断点时,调试器会在断点处停止,但是当我尝试在停止后单步执行时,会发生相同的错误。
当我直接设置 FileName 时:
QFileDialog open;
open.setDefaultSuffix("tst");
QString fileName="D:\path\to\File.tst";
if(fileName!="")
{
...
单步运行没有任何问题。
上面的代码运行没有任何问题,只有当我尝试单步时才会出现问题。
有谁知道问题或合适的解决方法?