在查看dyld的源代码时(我的版本是360.18), 我发现了很多日志代码,例如
dyld::log("dyld: re-using existing shared cache mapping\n");
dyld::log("dyld: shared cached region cannot be mapped at address %p with size 0x%08lX\n",mmapAddress, size);
日志功能定义如下:
void vlog(const char* format, va_list list)
{
if ( !sLogToFile && useSyslog() )
socket_syslogv(LOG_ERR, format, list);
else {
_simple_vdprintf(sLogfile, format, list);
}
}
void log(const char* format, ...)
{
va_list list;
va_start(list, format);
vlog(format, list);
va_end(list);
}
正如我们所看到的,日志调用vlog.And如果将环境var“DYLD_PRINT_TO_FILE”设置为文件名,var“sLogToFile”将被设置为文件描述符。 现在的问题是我无法在GDB和syslog中看到日志(在iOS上使用idevicesyslog)。我在“DYLD_PRINT_TO_FILE”中设置的文件。该文件将被创建,但它始终为空。 如何解决问题以获取日志信息~~~~~~~~~