我正在开发Qt应用程序,我想使用rashpad报告崩溃。我已经下载并构建了源代码。
现在,我想将它们静态链接到我的应用程序。
当我转到文件夹时,我看到很多.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
我不知道是否应该添加一些参数
有人可以帮忙吗?
预先感谢
答案 0 :(得分:2)
您应该使用gn
和ninja
进行构建,其中gn
生成构建配置,而ninja
进行实际构建。
对于MacOS,如果要生成libclient.a
,libutil.a
,libbase.a
和.o
中的所有out/Default/obj/out/Default/gen/util/mach
文件,则需要链接小型转储并将其上传到远程服务器。
此外,您需要将crashpad_handler
与应用程序打包,并确保其在运行时可用。
有关构建Crashpad的更多信息,请参见here。
可以找到here与Crashpad集成在一起的MacOS Qt应用程序的示例。
答案 1 :(得分:-1)
也许在您的代码中输入以下内容:
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
此外,导入sys。此代码将打印错误并报告错误。