我在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