Skip to content

Commit e736e29

Browse files
disable unswapping
1 parent 065906c commit e736e29

File tree

1 file changed

+41
-40
lines changed

1 file changed

+41
-40
lines changed

Sources/SentryCrash/Recording/Tools/SentryCrashCxaThrowSwapper.c

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -98,24 +98,24 @@ addPair(SentryCrashAddressPair pair)
9898
memcpy(&g_cxa_originals[g_cxa_originals_count++], &pair, sizeof(SentryCrashAddressPair));
9999
}
100100

101-
static void
102-
sentrycrashct_clear_pairs(void)
103-
{
104-
SENTRY_ASYNC_SAFE_LOG_TRACE("Clearing all stored pairs");
105-
106-
if (g_cxa_originals == NULL) {
107-
SENTRY_ASYNC_SAFE_LOG_WARN("g_cxa_originals is NULL, nothing to clear");
108-
return;
109-
}
110-
111-
// Free the allocated memory
112-
free(g_cxa_originals);
113-
g_cxa_originals = NULL;
114-
g_cxa_originals_count = 0;
115-
g_cxa_originals_capacity = 0;
116-
117-
SENTRY_ASYNC_SAFE_LOG_TRACE("Freed memory for stored pairs");
118-
}
101+
// static void
102+
// sentrycrashct_clear_pairs(void)
103+
//{
104+
// SENTRY_ASYNC_SAFE_LOG_TRACE("Clearing all stored pairs");
105+
//
106+
// if (g_cxa_originals == NULL) {
107+
// SENTRY_ASYNC_SAFE_LOG_WARN("g_cxa_originals is NULL, nothing to clear");
108+
// return;
109+
// }
110+
//
111+
// // Free the allocated memory
112+
// free(g_cxa_originals);
113+
// g_cxa_originals = NULL;
114+
// g_cxa_originals_count = 0;
115+
// g_cxa_originals_capacity = 0;
116+
//
117+
// SENTRY_ASYNC_SAFE_LOG_TRACE("Freed memory for stored pairs");
118+
// }
119119

120120
static uintptr_t
121121
findAddress(void *address)
@@ -392,28 +392,29 @@ sentrycrashct_swap_cxa_throw(const cxa_throw_type handler)
392392
int
393393
sentrycrashct_unswap_cxa_throw(void)
394394
{
395-
if (g_cxa_throw_handler == NULL || g_cxa_originals == NULL || g_cxa_originals_count == 0) {
396-
SENTRY_ASYNC_SAFE_LOG_INFO("No original __cxa_throw handlers to restore");
397-
return -1;
398-
}
399-
400-
SENTRY_ASYNC_SAFE_LOG_TRACE("Unswapping __cxa_throw handler");
401-
402-
// Call _dyld_image_count inside the loop in case images get loaded or unloaded while iterating.
403-
for (uint32_t i = 0; i < _dyld_image_count(); i++) {
404-
const struct mach_header *header = _dyld_get_image_header(i);
405-
intptr_t slide = _dyld_get_image_vmaddr_slide(i);
406-
407-
if (header == NULL || slide == 0) {
408-
continue;
409-
}
410-
411-
rebind_symbols_for_image(header, slide, false);
412-
}
413-
414-
sentrycrashct_clear_pairs();
415-
g_cxa_throw_handler = NULL;
416-
395+
// if (g_cxa_throw_handler == NULL || g_cxa_originals == NULL || g_cxa_originals_count == 0)
396+
// {
397+
// SENTRY_ASYNC_SAFE_LOG_INFO("No original __cxa_throw handlers to restore");
398+
// return -1;
399+
// }
400+
//
401+
// SENTRY_ASYNC_SAFE_LOG_TRACE("Unswapping __cxa_throw handler");
402+
//
403+
// // Call _dyld_image_count inside the loop in case images get loaded or unloaded while
404+
// iterating. for (uint32_t i = 0; i < _dyld_image_count(); i++) {
405+
// const struct mach_header *header = _dyld_get_image_header(i);
406+
// intptr_t slide = _dyld_get_image_vmaddr_slide(i);
407+
//
408+
// if (header == NULL || slide == 0) {
409+
// continue;
410+
// }
411+
//
412+
// rebind_symbols_for_image(header, slide, false);
413+
// }
414+
//
415+
// sentrycrashct_clear_pairs();
416+
// g_cxa_throw_handler = NULL;
417+
//
417418
return 0;
418419
}
419420

0 commit comments

Comments
 (0)