程式異常崩潰後用windbg輔助除錯解決的經驗
狀況:我的程式呼叫別人的庫做 檔案寫入工作。
在這一過程中出現異常,程式崩潰。
經反覆檢查,認為自己的程式沒有錯,但無法判斷在別人庫裡哪裡有錯。
使用windbg繫結程式程序進行除錯,可以在發生異常時候,獲取函式呼叫順序,進而知道在哪個函數出了異常。
由截圖可見,在我的程式函式CEncryptionUtils::write_user_certs呼叫別人的MWHwMan庫的SDFP_Close函式中呼叫另一個人的sdfp_lib庫中的SD_SafeWrite函式過程中呼叫TGWriteDevInfo函式時發生了 堆異常…………………………
所以我找到sdfp_lib庫作者,剛好是我同事,找他確認這個函式……然後解決問題……………………
上文說的只是除錯這種問題的一種思路
可以說,如果沒有windbg我是永遠不可能解決這個問題的
至於windbg的具體用法就不贅述
或有時間時候再贅述
相關推薦
程式異常崩潰後用windbg輔助除錯解決的經驗
狀況:我的程式呼叫別人的庫做 檔案寫入工作。 在這一過程中出現異常,程式崩潰。 經反覆檢查,認為自己的程式沒有錯,但無法判斷在別人庫裡哪裡有錯。 &
程式異常崩潰捕捉-dmp檔案及Windbg分析
#include <dbghelp.h> #include <shellapi.h> #include <shlobj.h> // 自定義的exectpion filter LONG WINAPI
linux監測程式異常退出後重新啟動以及linux開機自啟動
利用shell指令碼,輪詢監控應用的程序,如果出現崩潰程序不在的情況下,自動啟動應用程式。 1、建立一個shell指令碼: touch monitorRestart.sh; 2、修改指令碼許可權: chmod 777 monitorRestart.sh; 3、編輯檔案
C# System.Timers.Timer中的坑,程式異常退出後timer依然執行問題
問題背景 C#小白,由於本公司IM系統服務端(java)是本人獨立開發的,加上現在所在專案需要對接IM系統,於是IM的客戶端(C#實現)對接工作就交給我了。於是C#小白的我天真的以為只要呼叫C#端的SDK介面真搞定了。起初都還好,對接工作都很正常,沒什麼大問題。可是隨著時間的不斷流逝,終於在專案組小夥伴
Python小白處理程式異常,就用異常捕獲!
異常處理在之前的學習中我們一直沒有接觸過。 知道怎麼向程式輸入一段字串呢?那麼我們在這裡提供一個小例子。 學習Python中有不明白推薦加入交流裙 號:73
Android 對程式異常崩潰的捕捉
由於Android裝置各異,第三方定製的Android系統也非常多,我們不可能對所有的裝置場景都進行測試,因而開發一款完全無bug的應用幾乎是不可能的任務,那麼當應用在使用者的裝置上Force Close時,我們是不是可以捕獲這個錯誤,記錄使用者的裝置資訊,然後讓使用者選擇是否反饋這些堆疊資訊,通過這
qt處理程式異常崩潰
程式難免會有異常崩潰的時候,重要的是在崩潰時能及時把重要的資料儲存好,將損失減少。 儲存資料僅是拯救措施,更重要的是找到錯誤的根源。若能在崩潰的同一時候,程式自己主動記錄下崩潰時的執行資訊,將有助於修正工作。微軟提供了“DbgHelp”錯誤除錯技術。呼叫相關功能就可以儲
Qt程式異常崩潰處理技巧(Win)
文章轉載來自 http://www.cnblogs.com/lcchuguo/p/5177715.html 作者 lcchuguo 首先,程式難免會有異常崩潰的時候。重要的是在崩潰時能及時把重要的資料儲存好,將損失減少。 SetUnhandl
Linux-- 簡單的程式守護指令碼,程式異常退出後自動重啟
#!/bin/sh while true do ps -ef | grep "test(程式名)" | grep -v "grep" if ["$?" -eq 0] then ./test echo "wath process has been restarted! "
universal-image-loader載入圖片,程式異常崩潰,圖片不在載入顯示問題
主要是發現universal-image-loader 用來在載入圖片的時候,如果程式異常崩潰了,那麼在自動重啟程式的時候,universal-image-loader會出現在快取讀取圖片的問題,解決方式為 new DisplayImageOptions.Builde
android 應用程式異常崩潰捕捉
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java
Android 對全域性程式異常崩潰的捕捉
以下為異常捕捉處理程式碼: import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.F
Eclipse開啟後閃退、異常關閉後,啟動閃退的解決辦法
問題描述: 32位Win7系統下 Eclipse開啟便閃退,或者稍微維持十幾分鍾或半小時,還是自動關閉,在虛擬機器桌面內同樣的配置和設定就沒有這個問題,我自己電腦3G記憶體就會出現這樣的閃退或者自動關閉。 &
Ubuntu12.04異常關機後無法開啟的問題解決
編譯到一半突然將行動硬碟從USB口拔出,可能是因為動作太大,而且硬碟接線比較鬆,造成了系統突然間什麼都讀不到了,直接導致了關機,幸好我點選了取消。但是這時執行在虛擬機器中在進行編譯的Ubuntu已經被windows強制關掉了。弄好了電腦再次開啟虛擬機器,啟動Ubuntu已經
mysql在伺服器異常斷電後,無法重啟解決辦法
mysql在伺服器重啟後,無法正常啟動解決辦法: 1.第一個是立即關機 使用命令 shutdown -h now 關機,關機後在硬啟動,程序就停止了。 2.mv /var/lib/mysql/mysq
Eclipse崩潰後無法啟動的問題解決
次Eclipse發生記憶體溢位(ADT環境,多開啟幾個xml檔案記憶體佔用就會飈升),強制結束任務,再次啟動Eclipse發現閃退。檢視workspace/.metadata/.log檔案發現如下錯誤資訊: !ENTRY org.eclipse.equinox.p2.
解決Eclipse開啟後閃退 Eclipse在異常關閉後,啟動閃退的解決辦法
問題描述:Win7下 Eclipse編譯原本沒問題的工程時,第二天開始編譯總是通不過,後來Debug As - Android Application 除錯時出現卡死現象。工作管理員強制關閉Eclip
用windbg核心模式除錯使用者態程式
轉載自:https://blog.csdn.net/lixiangminghate/article/details/52847658 使用核心除錯會話也可以執行一些使用者態除錯任務,比如向位於使用者態的模組設定斷點。但這樣做與使用使用者態偵錯程式有什麼不同呢?我們就以向NTDLL.dll模組的Z
除錯技巧 —— 如何利用windbg + dump + map分析程式異常
Microsoft (R) Windows Debugger Version 6.11.0001.404 X86 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\Test\Release\Log\
用windbg雙機除錯(本機和VM虛擬機器)驅動程式
本文為在學習過程中的筆記,寫的不好請見諒. 在除錯核心驅動程式時,驅動程式被作業系統載入.而作業系統無法自己除錯自己.所以要用一臺計算機除錯另一臺計算機的作業系統,進而除錯核心驅動. 使用windbg對虛擬機器中的作業系統進行除錯之前,要先配置windbg和