我想做一些簡單而快速的控制檯調試器。這個小的lib應該嵌入到主程序中。如何使用帶變量名稱的字符串獲取變量地址?
所以我想這樣做的東西一樣運行在控制檯模式程序這一點的同時:
「輸入:打印我」 「輸出:15.53」 「輸入:設色255」 「輸入:打印顏色「 」輸出:255「
」i「和」color「都是預先聲明的變量in-code。它不是一個解釋器,只是檢查和修改變量內容的方便方法。
GDB不是我的問題的有效解決方案,因爲我將使用此代碼用於我將編碼的計算機圖形程序,因此它需要能夠以「發佈模式」運行。
到目前爲止,我發現的一個非常簡單的解決方案是製作一個包含void指針,指針數據類型和表示變量名稱的字符串的列表。但它不會像我想象的那樣自動化。
有沒有什麼辦法來轉換一個字符串,讓我們說「顏色」,以獲得在C++中命名爲顏色的整數變量的地址?如果不是,我怎麼能解決這個問題?
GDB的確是最小的必要「控制檯調試器」。 「轉換一個字符串讓我們說」color「來獲得名爲color的整型變量的地址的唯一方法是讀取調試符號。這就是GDB所做的,當你處於「發佈模式」時,這就是你失去的東西 – Arkadiy 2009-10-29 18:19:33
所以是的,它是一個解釋器。您想要解釋一個字符串值並檢索變量的地址。您需要手動完成這項工作。所有源符號信息都從可執行文件中刪除。 – 2009-10-29 18:42:22
@Martin:但調試信息_can_可以存儲在外部文件中,所以不必丟失。 – xtofl 2009-10-29 20:33:52