2011-08-04 39 views
3

我想查看設備上的應用程序堆棧跟蹤或崩潰日誌。 Qt中是否有可用的內置功能?如何在Qt中檢索堆棧跟蹤或設備崩潰日誌?

我們可以通過寫入文件或進行設備調試來獲取應用程序日誌。 但是,當在目標設備上運行應用程序時發生未知/致命錯誤時,獲取堆棧跟蹤非常有用。

回答

1

您還沒有指定哪個操作系統,但在Linux上你可以把它通過這個命令來創建一個核心文件

集的ulimit -c無限

將這個到你的.bashrc文件中或在是合適的,每當發生崩潰時,您將獲得應用程序的核心轉儲。

然後,您可以使用gdb進行調試。

2

沒有內置的解決方案,但(假設您使用的是C++),google-breakpad提供了一個解決方案。這個文檔有點缺乏,並且在處理事件處理程序中拋出的異常時遇到了問題,但它可以處理大部分繁重的工作。

應對其他答題:

絞股藍皁苷應放在src \工具\ GYP \ gyp.bat。您將運行如下內容:

src\tools\gyp\gyp.bat src\client\windows\breakpad_client.gyp --include=breakpad_include.gypi -Dwin_debug_RuntimeLibrary=3 -Dwin_release_RuntimeLibrary=2 --generator-output=..\build\google_breakpad 

breakpad_include.gypi文件設置gyp應該使用的特殊配置。我看起來是這樣的:

{ 
    'target_defaults': { 
    'configurations': { 
     'Common_Base': { 
     'msvs_settings': { 
      'VCCLCompilerTool': { 
      'TreatWChar_tAsBuiltInType': '0', 
      }, 
     }, 
     }, 
    }, 
    }, 
} 

這在Qt和VS對待WChar的方式上有所不同。其他設置指定要使用的運行時庫。這必須與Qt使用的內容相匹配。

+0

非常感謝您的回答。 –

相關問題