iOS - 使用plCrashReporter中的PRIx64打印内存地址

时间:2010-12-09 01:08:32

标签: c ios ios4 macros crash-reports

我正在尝试使用此处的代码在我的iPhone应用中包含plCrashReporter:

http://plcrashreporter.googlecode.com/svn/tags/plcrashreporter-1.0/Documentation/API/example_usage_iphone.html

我的一个问题出现在这一行:

 NSLog(@"Crashed with signal %@ (code %@, address=0x%" PRIx64 ")", report.signalInfo.name,
       report.signalInfo.code, report.signalInfo.address);

错误:

error: expected `)' before 'PRIx64'

我试着四处寻找但却找不到任何相关内容。思考? report.signalInfo.address是一个64位的unsigned int,为什么他们不只是使用%u?

谢谢!

2 个答案:

答案 0 :(得分:2)

PRIx64是“X”的宏。

答案 1 :(得分:0)

@mark是正确的,但这种变化相当具有侵入性,特别是如果您希望您的代码在其他应用程序中重用。相反,您应该确保已经定义了以下宏(可以在编译行上完成,而无需修改源代码):

__STDC_FORMAT_MACROS

例如,您的编译行应该类似于:

gcc -D__STDC_FORMAT_MACROS foo.c -o foo
相关问题