gdb-python

    1熱度

    1回答

    我在GDB(v7.5.1-0.7.29)中寫了一個python(v2.7)腳本。當某些情況出錯時,我想退出python腳本。但我不想退出GDB。我嘗試使用sys.exit(),exit()和quit(),但在這種情況下,他們也退出了GDB。有沒有什麼辦法可以退出python腳本而不是gdb。就像ctrl + c命令一樣,但是隻有當某個條件變爲false時,我纔想要發生這種情況。

    1熱度

    1回答

    我在進程之間共享字典,每個進程在dict中插入一個條目,其中字典中的鍵值可以是列表或gdb.Value實例。 每個進程正在做這樣的事情 mydict["key"] = [[2], gdb.Value(someaddress), 3, 4] 當上述行執行我得到下面的錯誤,看起來像它,因爲我將gdb.Value,這個工作如果在一個對象()實例的情況下, Traceback (most recent

    1熱度

    1回答

    我正在嘗試開發一個GDB python擴展,它定義了啓動一個新線程的命令,用戶可以在其中檢查任意類型的變量。我的Python擴展的框架是這樣的: import gdb import threading def plot_thread(): import time while True: print('Placeholder for a window event

    0熱度

    1回答

    對於我正在寫一個漂亮的打印機,我想知道對齊或在容器中使用的類型。不幸的是,使用alignof()或任何類似的「標準」操作符不起作用(https://sourceware.org/bugzilla/show_bug.cgi?id=17095)。採用直接在源代碼中的工作「典型」的宏觀技巧也不起作用: p ((char *)(&((struct { char c; double _h; } *)0)->

    0熱度

    1回答

    考慮以下輸出相同文本字符串的gdb命令。 (gdb) print foo (gdb) python print(gdb.lookup_symbol('foo')) 在這種情況下,預計gdb.lookup_symbol()返回gdb.Value()實例,它的字符串化等同於默認GDB字串。 但現在考慮以下情況相當於: (gdb) print *&foo 的*&是一個空操作,但試圖使用gdb.

    0熱度

    1回答

    我正在嘗試編寫一個GDB腳本來執行有界的指令跟蹤(即啓動addr和停止addr)。也許我在谷歌失敗,但我似乎不能發現這已經存在。 這裏是我的刺吧: python def start_logging(): gdb.execute("set logging on") gdb.execute("while $eip != 0xBA10012E9") gdb.execut

    1熱度

    2回答

    我在C一個結構++是這樣的: struct HeapBlock { char* data; } struct DataBlock { int size; HeapBlock hb; } 這些是一個框架的一部分,並且具有其他的幾個成員,助手等等,但這些都是重要的部分。我想在Python GDB漂亮的打印機這樣的事情,以顯示這一點: NAME TYPE

    2熱度

    1回答

    我有一個方便的類,我可以使用它輕鬆地將一組「summariser」函​​數添加到GDB漂亮的打印機(例如,Rect類可能有一個由Python計算的字段)。然後它會打印所有現有的孩子,以便一次查看所有內容。 class SummaryAndFieldIterator: """ Iterator to first go through a list of summariser fu

    0熱度

    1回答

    我仍然在學習如何在gdb(arm-none-eabi-gdb,在我的情況下)中使用Python進行調試。我正嘗試使用此工具來獲取在ARM Cortex-M上運行的實時操作系統的線程信息。讀取一些OS結構後,我可以訪問操作系統的線程控制塊。我知道每個線程的PC和SP。我如何使用gdb的Python來轉儲線程的回溯。給定PC和SP時是否有通用API可以遍歷堆棧? 我看過https://sourcewa

    1熱度

    2回答

    我想寫一個漂亮的打印機爲一個類包含一個std ::對象集,我也提供我自己的漂亮的打印機。基本上,這是我的C++代碼的樣子: #include <set> #include <iostream> #include <cassert> class Foo { public: int x; bool operator<(const Foo & rhs) const {