ОП разыскивается на устройстве

но я столкнулся с проблемой, для которой не было рабочих решений в Google. Я хотел бы записывать сообщения приложения Objective-C на консоль или в файл. Я не писал приложение, поэтому у меня нет исходного кода для перекомпиляции с включенным ведением журнала. У меня джейлбрейкнутый iPhone, поэтому никаких ограничений на то, как это реализовать, нет. Я даже подумывал сделать это с помощью расширения MobileSubstrate (могу ли я подключить objc_msgSend для этого приложения, чтобы сделать некоторую запись?), Но у меня не было много идей. Можете ли вы помочь мне с этим?

 mackross09 янв. 2011 г., 16:55
Когда вы входите в систему, вы не получите имена методов. Вы получите только указатели. Имена методов не сохраняются в окончательном двоичном файле. Они хранятся в отдельном файле (.dSYM)
 user52975809 янв. 2011 г., 17:56
ughoavgfhw прав (пытались ли вы когда-нибудь открыть двоичный файл, сгенерированный ld из источника Objective-C?), и это полезно знать, но тогда как заставить objc_msgSend вести журнал?
 ughoavgfhw09 янв. 2011 г., 17:23
Селекторы методов хранятся в двоичном виде. Objective-c не будет работать без них. Второй аргумент objc_msgSend - это селектор, который можно изменить на строку.

Ответы на вопрос(1)

Решение Вопроса

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

(gdb) call (void)instrumentObjcMessageSends(YES)

Файл журнала будет записан в текстовый файл в папке TMP. Подробнее здесь:

http://www.dribin.org/dave/blog/archives/2006/04/22/tracing_objc/

 Kaiserludi02 июн. 2011 г., 00:59
пробовал на симуляторе? Работал там для меня.
 user52975811 янв. 2011 г., 17:22
Ну, я попробовал это, но не было файлов int / tmp.
 malhal03 мар. 2014 г., 22:52
ОП разыскивается на устройстве
 user52975811 янв. 2011 г., 16:29
Спасибо Cbranch, вы действительно помогли мне. Я попробую это. (упс, еще один вопрос: как мне установить точку останова?)

Ваш ответ на вопрос