[K/N] Patch libbacktrace to work in ios simulator.

This commit is contained in:
Pavel Kunyavskiy
2021-09-01 12:27:04 +03:00
committed by Space
parent 45317ca221
commit 8a6b997559
@@ -92,6 +92,7 @@ struct macho_header_fat
#define MACH_O_MH_EXECUTE 0x02 #define MACH_O_MH_EXECUTE 0x02
#define MACH_O_MH_DYLIB 0x06 #define MACH_O_MH_DYLIB 0x06
#define MACH_O_MH_DYLINKER 0x07
#define MACH_O_MH_DSYM 0x0a #define MACH_O_MH_DSYM 0x0a
/* A component of a fat file. A fat file starts with a /* A component of a fat file. A fat file starts with a
@@ -1060,6 +1061,8 @@ macho_add (struct backtrace_state *state, const char *filename, int descriptor,
case MACH_O_MH_DYLIB: case MACH_O_MH_DYLIB:
case MACH_O_MH_DSYM: case MACH_O_MH_DSYM:
break; break;
case MACH_O_MH_DYLINKER:
goto skip;
default: default:
error_callback (data, "executable file is not an executable", 0); error_callback (data, "executable file is not an executable", 0);
goto fail; goto fail;
@@ -1214,6 +1217,12 @@ macho_add (struct backtrace_state *state, const char *filename, int descriptor,
if (descriptor != -1) if (descriptor != -1)
backtrace_close (descriptor, error_callback, data); backtrace_close (descriptor, error_callback, data);
return 0; return 0;
skip:
if (cmds_view_valid)
backtrace_release_view (state, &cmds_view, error_callback, data);
if (descriptor != -1)
backtrace_close (descriptor, error_callback, data);
return 1;
} }
#ifdef HAVE_MACH_O_DYLD_H #ifdef HAVE_MACH_O_DYLD_H