gdb

    1熱度

    1回答

    我試圖爲原生和遠程GDB製作通用的gdbinit,其中native是i386,remote是ARM。對於i386,我有set disassembly-flavor intel命令,它打破了針對ARM的GDB的初始化。 我發現的唯一讓我知道arch(至少是i386 vs ARM)的命令是 show arch命令,但它只是將其輸出打印到標準輸出,不允許我比較它。 那麼,有什麼辦法只對某些架構執行一個命

    0熱度

    2回答

    我正在調試一個C/C++程序,我想根據多個變量設置一個具有條件的斷點。 休息Foo.cpp中:60如果(巴== 3 & & == 5 I) 這似乎並沒有工作,因爲它停止每當它擊中Foo.cpp中:60而不是每當兩個條件匹配時(它甚至不符合其中一個條件)。有沒有一種簡單的方法來實現我想要實現的目標? 編輯:bar和我不是原生C類型,它們是強類型的。 休息Foo.cpp中:60如果((A)條== 3

    0熱度

    1回答

    我想自動添加一個步驟到核心轉儲生成過程(最好是針對某些進程的內核,但如果不可能比所有進程都可行)。我想在同一個文件夾中添加一個包含核心塊的文本文件。 此刻,我正在使用core_pattern生成具有特定名稱的核心並對其進行壓縮,因此我基本上希望在壓縮之前在覈心上運行gdb,然後將壓縮打印堆棧跟蹤到壓縮文件。 可能嗎?

    1熱度

    1回答

    我有一個生成Bus error (core dumped)消息的二進制文件。當我在調試器(gdb)下運行它時,它無法訪問.bss部分中的內存位置。 Program received signal SIGBUS, Bus error. 0x0000000000412275 in ??() 在這個位置的代碼是: 41226f: 0f 8f 33 ff ff ff jg 41

    0熱度

    2回答

    這裏是同樣的問題,我問: deleting even nodes from a doubly link list c++ 不同的是,我想明白什麼是錯我的代碼。我不想只是接受一種完全不同的方法,而不明白爲什麼我的代碼不起作用。以下是我的代碼的兩個版本,我想知道兩者的問題。他們都給我分段錯誤。 int removeEven(node *&head) { if(!head) //Base ca

    1熱度

    1回答

    我檢查了sqrt(-1.0)是否返回NaN(http://en.cppreference.com/w/c/numeric/math/sqrt)。在gdb中,它不返回NaN (gdb) p/x sqrt(-1.0) $10 = 0xe53a86a0 (gdb) p sqrt(-1.0) $11 = -449149280 GDB調用不同的sqrt嗎?我使用gdb 7.6

    0熱度

    1回答

    我有一個突破點是這樣的: b kuk.cpp:1803 if (v==644) commands p m_d.m_state[644] end 我注意到命令列表內的登記漂亮的打印機只: global pretty-printers: builtin mpx_bound128 以外的命令名單上有: (gdb) info pretty-printer global pret

    1熱度

    1回答

    據我所知,程序中的每個函數符號在地址空間都有相應的內存區域。 call彙編指令推動ip和其他一些信息在堆棧上並跳轉到該範圍的開始處。 我需要在使用GDB進行調試時獲得該範圍。我可以很容易地使用info symbol獲得與給定地址或行相對應的函數的名稱。我需要相反的:符號 - >地址範圍。實際上,我甚至可以使用TUI模式,將彙編代碼滾動到函數末尾,並在最後一條指令附近查看「<symbol_name>

    -1熱度

    1回答

    你好我是新手程序員,我試圖調試一個簡單的c程序,使用getline(從K&R book開始) - 輸入以換行符結束。 我在emacs上遇到gdb問題。當我從shell進行調試時,程序正常工作。當它到達輸入行並要求輸入時,輸入我的輸入,按回車並繼續執行調試步驟。 但是,當我用命令M-x gdb/*進行調試時,使用默認設置* /程序到達輸入行並要求輸入。我輸入我的輸入,然後不能進行調試/ *輸入不會讓

    0熱度

    1回答

    考慮下面的C碼(x86_64的) #include <unistd.h> int main() { execve("/bin/ls", 0, 0); } 予編譯爲gcc a.c和執行;我得到了SIGABRT錯誤 A NULL argv[0] was passed through an exec system call. Aborted 下一頁上gdb下運行,起初我也得到了