0
我收到用戶提供的一些Dr. Watson信息(包括EIP)的崩潰報告。我想開始調試,然後設置EIP並查看哪些行需要我。我也在Release版本中啓用了Line Info。我有一個標籤在源代碼控制,所以我可以拉來源,我用它來建立它,但我不知道如果鏈接器將產生一個EXE與相同的偏移量,否則EIP將沒有用。如果我使用相同的資源重建,EXEs是否具有相同的偏移量?
我收到用戶提供的一些Dr. Watson信息(包括EIP)的崩潰報告。我想開始調試,然後設置EIP並查看哪些行需要我。我也在Release版本中啓用了Line Info。我有一個標籤在源代碼控制,所以我可以拉來源,我用它來建立它,但我不知道如果鏈接器將產生一個EXE與相同的偏移量,否則EIP將沒有用。如果我使用相同的資源重建,EXEs是否具有相同的偏移量?
除非您確保所有使用的庫,所有源代碼和鏈接程序自您將代碼檢入版本控制之後未發生更改,否則沒有任何偏移量將相同。這就是爲什麼許多公司會竭盡全力將可執行文件保存在配置管理之下。根據經驗,如果偏移量不相同,那麼它很快就會變得很明顯,所以您至少可以檢查,如果事情沒有意義,請忽略EIP和其他可執行地址偏移量。
如果您構建一個地圖文件並從崩潰報告的來源版本和重建源地圖文件中保存該地圖文件,那麼您可以進行一些比較分析(真的按函數功能)以獲得一些有用的信息來自可執行地址和偏移量。
呃,我忘了我們發佈的可執行文件也是數字簽名的。我測試簽了一個exe文件,它發生了很大的變化 - 不僅尺寸變大了,而且很多東西都被移動了。 – sashoalm 2012-03-01 19:42:31