我想寫一個函數,它將查找所有局部變量並將其保存到光盤。稍後,我想加載這些變量並調用變量保存的調用函數。目標是加速調試我的代碼中深處的函數。在C++中轉儲局部變量
我在Matlab中使用了類似的技術,它允許保存整個工作空間並稍後加載並繼續。我可以在C++中使用類似/相關的技術嗎?
我想寫一個函數,它將查找所有局部變量並將其保存到光盤。稍後,我想加載這些變量並調用變量保存的調用函數。目標是加速調試我的代碼中深處的函數。在C++中轉儲局部變量
我在Matlab中使用了類似的技術,它允許保存整個工作空間並稍後加載並繼續。我可以在C++中使用類似/相關的技術嗎?
您正在尋找reflector機制。
在C++中沒有任何反射器工具來枚舉變量,所以你不能像Matlab那樣做。
您應該創建一個數據結構並在代碼中手動添加變量。然後做你想做的。
在實踐程序員將使用以下步驟:
拯救:
加載:
怎麼樣的通話記錄?那麼寄存器中的值呢?你想在功能的第一行或其他行恢復。
您可以嘗試編寫堆棧,但只有在沒有變量具有構造函數或指向malloc內存的指針時纔有效。
您可以使用setjmp()獲取寄存器和longjmp()中的所有值來恢復它們。
如果您在Windows上,可以查看DbgHelp API。它可能有枚舉所有局部變量的方法。
你想保存什麼,你嘗試過什麼? – 2013-04-20 20:24:47