我在MinGW 4.8的gdb上使用Windows 7机器上的Qt 5.2.1 MinGW 32bit。 当我尝试通过代码单步执行时,会出现一个奇怪的行为。Qt 5.2.1 QFileDialog GDB奇怪的行为
QFileDialog open;
open.setDefaultSuffix("tst");
QString fileName=open.getSaveFileName(this,tr("New File"),"",tr("Test File (*.tst)"));
if(fileName!="")
{
...
我在第一行设置了一个断点。 Singlestepping的工作,直到第三行,比选择文件后,gdb说:
无法插入断点-1217。 访问内存地址0x7219cd30时出错:输入/输出错误。
当我设置断点insede的时候,如果或之后,调试器停止在断点,但是当我尝试在停止后单独步时,发生同样的错误。
当我直接设置文件名,如:
QFileDialog open;
open.setDefaultSuffix("tst");
QString fileName="D:\path\to\File.tst";
if(fileName!="")
{
...
Singlestepping工作没有任何问题。
上面的代码运行没有任何问题,只有当我尝试singlestep时才会出现问题。
有谁知道这个问题,或者一个合适的解决方法?
问题可能发生在'open.getSaveFileName()',它打开一个阻止执行到下一行的模态对话框if(fileName!=“”)...'。我也会在第四行放置一个断点,以便在选择文件时停止。 – vahancho
我试过了。但是当我在第4行放置一个断点(或更晚的时候,我在if中做了很多事情)时发生同样的错误。 @vahancho – Haselnussstrauch