提问人:Conrad 提问时间:9/29/2023 最后编辑:Conrad 更新时间:9/29/2023 访问量:35
调试崩溃,看似损坏的 Linux 堆栈跟踪
Debugging crash with seemingly corrupted Linux stack trace
问:
我正在与一个客户合作,该客户正在调试我的代码中的崩溃,并在他们的产品中使用我的库。我无权访问客户端的开发环境。我向他们提供了我的 .so 库和相关的 .pdb 调试信息。(调试信息是通过使用 -g 编译代码创建的,然后使用 创建 .pdb 文件,最后使用 .so 文件删除符号。客户端使用命令 手动将符号加载到 gdb 中。客户端已确认他们使用了正确的库和调试符号。提供给我的堆栈跟踪:objcopy --only-keep-debug
objcopy --strip-all
add-symbol-file libBDR.so.5.1.4.pdb
libc.so.6!__libc_siglongjmp(struct __jmp_buf_tag * env, int val) Line 32 C
libpthread.so.0!longjmp_compat(struct __jmp_buf_tag * env, int val) Line 62 C
libCT.so![Unknown/Just-In-Time compiled code]
libCT.so!CTInit
libBDR.so.5.1.4![Unknown/Just-In-Time compiled code]
libBDR.so.5.1.4!BDRPublic::BDRInit(BDRPublic::tBDRInitData const*, BDRPublic::I_Error&)
libcalappl.so!BDRPublic::BDR_Initialize(BDRPublic::pBDRWrapperInitData initData) Line 7488 C++
libcalappl.so!JPStartBDR(JPPriv * jpPriv, JPFrontOpts * jpOpts, bdrDLLVersion, BDRPublic::sBDRWrapperConfigDataBuffer * bdrConfigDataBuffer) Line 2240 C++
libcalappl.so!appl_start() Line 392 C++
libcalupdl.so!appl_Main(struct pdf_Handle * hndl) Line 125 C
libcalbrainlib.so!ResEntryPoint(void * param) Line 820 C
libcalbrainlib.so!SI_TaskStartUp(void * pvParam) Line 639 C
libcalbasics.so!s_TaskStartUp(void * param) Line 4445 C++
libcalbasics.so!s_TaskStartUpPthread(void * pvParam) Line 4549 C++
libpthread.so.0!start_thread(void * arg) Line 477 C
libc.so.6!clone() Line 95 C++
我的代码是 libBDR.so/libCT.so;下面的所有内容都是客户端的代码。“未知/即时编译代码”没有意义,因为所有代码都是 C/C++,不应该有 JIT 代码/环境。如何让它们使用代码中缺少的帧信息提供更好的堆栈跟踪?
答: 暂无答案
评论