分析Linux上崩潰的最佳方法是什麼?Linux上的崩潰分析
我們期望構建軟件並向測試人員提供發佈版本。測試人員可能無法記住如何重現崩潰或崩潰可能完全是間歇性的。他們的機器上也沒有開發環境。該軟件以C/C++編寫,並編譯爲本地機器代碼進行分發。
分析Linux上崩潰的最佳方法是什麼?Linux上的崩潰分析
我們期望構建軟件並向測試人員提供發佈版本。測試人員可能無法記住如何重現崩潰或崩潰可能完全是間歇性的。他們的機器上也沒有開發環境。該軟件以C/C++編寫,並編譯爲本地機器代碼進行分發。
我相信你正在尋找的是這樣的:How to generate a stacktrace when my gcc C++ app crashes
如果您在磁盤上的空間,讓應用程序創建其核心轉儲時崩潰。
ulimit -c unlimited
後來您可以使用GDB進行調試。
除了已經提到的核心堆棧和堆棧跟蹤之外 - 確保您可以輕鬆識別您的可執行文件正在運行的版本,並且能夠回答每個源文件的版本是什麼版本(即花費一些時間你的源代碼控制系統和你的構建腳本)。否則核心文件和堆棧跟蹤都不會有幫助。
核心轉儲是有幫助的,但他們並不總是告訴你你想知道你是如何在錯誤狀態結束了一切。
記錄操作,輸入和事件可以是非常有益的。如果您可以記錄程序的每次運行,以便在發生崩潰時開發人員可以訪問日誌並重新生成錯誤可能會非常有幫助。
如果可能的話,你應該建立自己的程序與產生的最大調試符號,然後帶他們,如果你不想或者不能讓你的發行版有他們,但保留每發佈版本的副本與調試符號如果您需要調試崩潰,您可以將其與核心文件耦合。
可能的複製http://stackoverflow.com/questions/914833/linux-c-how-to-debug-release-application – DumbCoder 2010-07-27 13:12:06