iOS - печать адреса памяти с использованием PRIx64 в plCrashReporter - PullRequest
0 голосов
/ 09 декабря 2010

Я пытаюсь включить plCrashReporter в приложение для iPhone, используя код, найденный здесь:

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-разрядное целое число без знака, так почему бы просто не использовать% u?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 09 декабря 2010

PRIx64 - это макрос для "X".

0 голосов
/ 10 июня 2011

@ mark верно, но это изменение довольно навязчиво, особенно если вы ожидаете, что ваш код будет повторно использоваться в других приложениях. Вместо этого вам следует убедиться, что вы определили следующий макрос (это можно сделать в строке компиляции без изменения исходного кода):

__STDC_FORMAT_MACROS

Например, ваша строка компиляции должна выглядеть примерно так:

gcc -D__STDC_FORMAT_MACROS foo.c -o foo
...