2013-10-13 124 views
0

我有一個相當標準的C++/QT應用程序,它可以在我的開發PC上進行調試和發佈。在乾淨的PC上試用發行版本時,它會運行,但功能的一部分(通過USB連接顯示視頻)無法運行。好吧,以前看過這個,我的標準技術是將調試信息添加到發佈版本,設置遠程調試並查看。令我驚訝的是,它作爲一個發佈版本與調試信息(.pdb) 運行良好,我從來沒有見過這種情況。發佈版本調試問題

使用依賴關係walker顯示沒有任何依賴關係的問題。使用屬於Dependency Walker一部分的剖析器,它也可以完美運行。

我已經用完了調試技術,我唯一能想到的就是在多線程應用程序中的各個位置添加消息框似乎不是一個好主意。

有沒有可以幫助我發現這個問題的調試技術?我們使用VS2008和Qt 4.7.1。

回答

1

優化您的消息框 - 使用日誌文件。

從你的描述,在我看來,有可能某種當某個線程或其他被通過的東西被觀察放緩是被解決競爭條件/時間問題。或者通過向二進制文件添加調試信息。

使用帶時間戳的日誌文件,您應該能夠跟蹤事件發生的時間。

+0

WindDebug是一個很好的朋友。添加調試信息和日誌記錄最終找到了未初始化變量的條件。花了兩天時間才終於找到它。 – ExpatEgghead

1

我認爲伐木是你的朋友。如果您有多個線程,則可能需要將每個線程記錄到不同的日誌文件。