簡體   English   中英

如何為 Qt 應用程序構建崩潰板

[英]How to build crashpad for Qt application

我正在開發 Qt 應用程序,我想使用 crashpad 報告崩潰。 我已經下載了源代碼並構建了它們。

現在我想將這些靜態鏈接到我的應用程序。

當我轉到 out 文件夾時,我看到很多 .a 文件。 我應該選擇哪一個?

> find ./out -name *.a 
./obj/handler/libhandler.a
./obj/snapshot/libsnapshot.a
./obj/snapshot/libtest_support.a
./obj/test/libtest.a
./obj/test/libgtest_main.a
./obj/test/libgmock_main.a
./obj/util/libutil.a
./obj/third_party/mini_chromium/mini_chromium/base/libbase.a
./obj/third_party/gtest/libgtest_main.a
./obj/third_party/gtest/libgtest.a
./obj/third_party/gtest/libgmock.a
./obj/third_party/gtest/libgmock_main.a
./obj/minidump/libminidump.a
./obj/minidump/libtest_support.a
./obj/client/libclient.a

我也使用這個命令構建了它:

build/gyp_crashpad.py -Dmac_deployment_target=10.12

我不知道我是否應該添加一些參數

有人可以幫忙嗎?

提前致謝

您應該使用gnninja進行構建,其中gn生成構建配置,而ninja進行實際構建。

適用於MacOS,則需要對鏈接libclient.alibutil.alibbase.a的和所有.o文件中out/Default/obj/out/Default/gen/util/mach ,如果你想生成小型轉儲和將它們上傳到遠程服務器。

此外,您需要將crashpad_handler與您的應用程序一起打包,並確保它在運行時可用。

可以在此處找到有關構建 Crashpad 的更多信息。

可以在此處找到已與 Crashpad 集成的 MacOS Qt 應用程序示例。

也許在你的代碼中輸入:

sys._excepthook = sys.excepthook

def my_exception_hook(exctype, value, traceback):
    # Print the error and traceback
    print(exctype, value, traceback)
    # Call the normal Exception hook after
    sys._excepthook(exctype, value, traceback)
    sys.exit(1)
# Set the exception hook to our wrapping function
sys.excepthook = my_exception_hook

另外,導入系統。 此代碼打印錯誤並報告它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM