【发布时间】:2012-05-23 12:30:49
【问题描述】:
我在 powerpc 平台的 Montavista linux 上运行的一个应用程序崩溃了。前 3 个堆栈帧显示绝对地址而不是符号。我的构建机器托管在不同的平台上,我正在使用交叉编译器来构建应用程序。我怎样才能取回符号。
回溯如下 -
#0 0x0f272adc in ?? () from /lib/libc.so.6
#1 0x0f3537fc in ?? () from /lib/libc.so.6
#2 0x0f274f44 in ?? () from /lib/libc.so.6
#3 0x0f276e94 in malloc () from /lib/libc.so.6
#4 0x105c94a8 in fast_memget (module_id=0, noctets=820, err=0x3893e710) at ../common/src/portlayer.c:1305
#5 0x1055f734 in glbSipParserDecodeMessage (
message=0x3b225e58 "SIP/2.0 200 OK\r\nVia: SIP/2.0/TCP 10.194.182.55:5060;branch=z9hG4bK2495419925-4086;received=10.194.182.55;ingress-zone=mxenode51\r\nCall-ID: 2469861343-4086\r\nCSeq: 6 INFO\r\nContact: <sip:4084565719@10.194"..., opt=0x3893e70c, messageLength=425, nextmesg=0x3893e898, pContext=0x3893e8cc, ppSipMessage=0x3893e6bc, err=0x3893e710) at src/sipdecode.c:6184
【问题讨论】:
-
你用-g编译了吗?或优化(-O1、-O2 等)?
-
布雷迪,我需要检查一下。实际上,我们有大量的应用程序在分布式环境中运行在基于 ATCA 的平台上,因此构建过程是由构建工程师自动化和管理的。如果启用优化会有什么不同。谢谢你的帖子。
-
哇,听起来很熟悉。我们曾经考虑过 ATCA。我在从 linux 交叉编译到 Cavium Octeon (MIPS) 时遇到了这个问题,并且在使用他们的参考板时特别看到,经过优化编译后我也看不到符号。
标签: c++ gdb cross-compiling