2016-12-02 68 views
0

當試圖用gdb運行一個程序,我得到GDB:未知的目標異常

[New Thread 4612.0x158c] 
[New Thread 4612.0x1cb8] 
[New Thread 4612.0x11e8] 
[New Thread 4612.0x1190] 
gdb: unknown target exception 0x406d1388 at 0x746623d2 

Program received signal ?, Unknown signal. 
0x746623d2 in RaiseException() from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll 

我研究了這一點,並發現了三個可能的原因:(1)未設置PATH環境變量,(2)驅動器沒有映射,和(3)使用錯誤版本的gdb(32位或64位)。所以我加了C:\ Cygwin的\ bin添加到PATH環境變量中,鍵入安裝並獲得

C:/cygwin/bin on /usr/bin type ntfs (binary,auto) 
C:/cygwin/lib on /usr/lib type ntfs (binary,auto) 
C:/cygwin on/type ntfs (binary,auto) 
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto) 
D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto) 

當我鍵入顯示的配置得到

This GDB was configured as follows: 
configure --host=i686-pc-cygwin --target=i686-pc-cygwin 
      --with-auto-load-dir=$debugdir:$datadir/auto-load 
      --with-auto-load-safe-path=$debugdir:$datadir/auto-load 
      --with-expat 
      --with-gdb-datadir=/usr/share/gdb (relocatable) 
      --with-jit-reader-dir=/usr/lib/gdb (relocatable) 
      --without-libunwind-ia64 
      --with-lzma 
      --with-python=/usr (relocatable) 
      --without-guile 
      --with-separate-debug-dir=/usr/lib/debug (relocatable) 
      --without-babeltrace 

和我的電腦是32位的,所以它似乎是正確的版本。

gdb本身似乎工作,例如,我可以輸入手錶,然後輸入地址,它會設置一個觀察點; gcc和g ++工作正常,我正在調試的程序將從命令行運行,但不是從gdb運行。

我應該檢查什麼其他東西?

回答

0

我有同樣的問題。我也在Vista上使用x86和eclipse mars.2,默認情況下,gdb 7.10是通過安裝程序下載的。我也嘗試了所有你試圖無效的。

最後,我注意到下面的鏈接並將gdb升級到7.11,問題得到解決。

https://cygwin.com/ml/cygwin/2016-10/msg00243.html

+0

感謝您的回覆。我使用其他調試技術修復了這個錯誤,但我會注意到這一點以備將來使用。我現在不想安裝另一個版本的gdb,因爲我不想像我過去那樣無意中啃我的Cygwin版本。 –