2011-09-05 97 views
0

在拋出異常之後,堆棧展開期間是否可以通過某種方式訪問​​局部變量(和方法參數)?使用StackWalk64獲取方法名稱是相當簡單的,但我想知道我是否可以獲取變量,以便更好地理解問題。在堆棧展開期間打印堆棧變量

+1

您可以創建完整轉儲。這不會幫助你在某些日誌中打印東西,但是當你打開VS或WinDbg中的轉儲時,你會看到局部變量(以及堆中分配的所有東西)。 – eran

回答

0

即使您在調試器(包括您自己的自制調試器)下運行該進程,也不可能在拋出異常並且到達異常處理程序後獲取局部變量。調用堆棧已經展開。

然而,您可能會使用SEH而不是C++異常處理來獲取調用堆棧(並非在所有情況下)。