Skip to content

Commit 38f322d

Browse files
committed
fix: Remove symbolication that causes deadlocks
1 parent 22af3fc commit 38f322d

12 files changed

+15
-262
lines changed

Sentry.xcodeproj/project.pbxproj

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@
254254
63FE711B20DA4C1000CDBAE8 /* SentryCrashString.c in Sources */ = {isa = PBXBuildFile; fileRef = 63FE701420DA4C1000CDBAE8 /* SentryCrashString.c */; };
255255
63FE711D20DA4C1000CDBAE8 /* SentryCrashCPU_arm64.c in Sources */ = {isa = PBXBuildFile; fileRef = 63FE701520DA4C1000CDBAE8 /* SentryCrashCPU_arm64.c */; };
256256
63FE711F20DA4C1000CDBAE8 /* SentryCrashObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FE701620DA4C1000CDBAE8 /* SentryCrashObjC.h */; };
257-
63FE712120DA4C1000CDBAE8 /* SentryCrashSymbolicator.c in Sources */ = {isa = PBXBuildFile; fileRef = 63FE701720DA4C1000CDBAE8 /* SentryCrashSymbolicator.c */; };
258257
63FE712320DA4C1000CDBAE8 /* SentryCrashID.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FE701820DA4C1000CDBAE8 /* SentryCrashID.h */; };
259258
63FE712520DA4C1000CDBAE8 /* SentryCrashSignalInfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 63FE701920DA4C1000CDBAE8 /* SentryCrashSignalInfo.c */; };
260259
63FE712720DA4C1000CDBAE8 /* SentryCrashThread.c in Sources */ = {isa = PBXBuildFile; fileRef = 63FE701A20DA4C1000CDBAE8 /* SentryCrashThread.c */; };
@@ -283,7 +282,6 @@
283282
63FE715720DA4C1100CDBAE8 /* SentryCrashThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FE703220DA4C1000CDBAE8 /* SentryCrashThread.h */; };
284283
63FE715920DA4C1100CDBAE8 /* SentryCrashCPU_x86_32.c in Sources */ = {isa = PBXBuildFile; fileRef = 63FE703320DA4C1000CDBAE8 /* SentryCrashCPU_x86_32.c */; };
285284
63FE715B20DA4C1100CDBAE8 /* SentryCrashSignalInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FE703420DA4C1000CDBAE8 /* SentryCrashSignalInfo.h */; };
286-
63FE715D20DA4C1100CDBAE8 /* SentryCrashSymbolicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FE703520DA4C1000CDBAE8 /* SentryCrashSymbolicator.h */; };
287285
63FE715F20DA4C1100CDBAE8 /* SentryCrashID.c in Sources */ = {isa = PBXBuildFile; fileRef = 63FE703620DA4C1000CDBAE8 /* SentryCrashID.c */; };
288286
63FE716320DA4C1100CDBAE8 /* SentryCrashDynamicLinker.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FE703820DA4C1000CDBAE8 /* SentryCrashDynamicLinker.h */; };
289287
63FE716520DA4C1100CDBAE8 /* SentryCrashMemory.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FE703920DA4C1000CDBAE8 /* SentryCrashMemory.h */; };
@@ -1541,7 +1539,6 @@
15411539
63FE701420DA4C1000CDBAE8 /* SentryCrashString.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SentryCrashString.c; sourceTree = "<group>"; };
15421540
63FE701520DA4C1000CDBAE8 /* SentryCrashCPU_arm64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SentryCrashCPU_arm64.c; sourceTree = "<group>"; };
15431541
63FE701620DA4C1000CDBAE8 /* SentryCrashObjC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SentryCrashObjC.h; sourceTree = "<group>"; };
1544-
63FE701720DA4C1000CDBAE8 /* SentryCrashSymbolicator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SentryCrashSymbolicator.c; sourceTree = "<group>"; };
15451542
63FE701820DA4C1000CDBAE8 /* SentryCrashID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SentryCrashID.h; sourceTree = "<group>"; };
15461543
63FE701920DA4C1000CDBAE8 /* SentryCrashSignalInfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SentryCrashSignalInfo.c; sourceTree = "<group>"; };
15471544
63FE701A20DA4C1000CDBAE8 /* SentryCrashThread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SentryCrashThread.c; sourceTree = "<group>"; };
@@ -1570,7 +1567,6 @@
15701567
63FE703220DA4C1000CDBAE8 /* SentryCrashThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SentryCrashThread.h; path = ../../../Sentry/include/SentryCrashThread.h; sourceTree = "<group>"; };
15711568
63FE703320DA4C1000CDBAE8 /* SentryCrashCPU_x86_32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SentryCrashCPU_x86_32.c; sourceTree = "<group>"; };
15721569
63FE703420DA4C1000CDBAE8 /* SentryCrashSignalInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SentryCrashSignalInfo.h; sourceTree = "<group>"; };
1573-
63FE703520DA4C1000CDBAE8 /* SentryCrashSymbolicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SentryCrashSymbolicator.h; sourceTree = "<group>"; };
15741570
63FE703620DA4C1000CDBAE8 /* SentryCrashID.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SentryCrashID.c; sourceTree = "<group>"; };
15751571
63FE703820DA4C1000CDBAE8 /* SentryCrashDynamicLinker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SentryCrashDynamicLinker.h; path = ../../../Sentry/include/SentryCrashDynamicLinker.h; sourceTree = "<group>"; };
15761572
63FE703920DA4C1000CDBAE8 /* SentryCrashMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SentryCrashMemory.h; sourceTree = "<group>"; };
@@ -3289,8 +3285,6 @@
32893285
63FE701C20DA4C1000CDBAE8 /* SentryCrashStackCursor.h */,
32903286
63FE701420DA4C1000CDBAE8 /* SentryCrashString.c */,
32913287
63FE702C20DA4C1000CDBAE8 /* SentryCrashString.h */,
3292-
63FE701720DA4C1000CDBAE8 /* SentryCrashSymbolicator.c */,
3293-
63FE703520DA4C1000CDBAE8 /* SentryCrashSymbolicator.h */,
32943288
63FE701E20DA4C1000CDBAE8 /* SentryCrashSysCtl.c */,
32953289
63FE703D20DA4C1000CDBAE8 /* SentryCrashSysCtl.h */,
32963290
63FE701A20DA4C1000CDBAE8 /* SentryCrashThread.c */,
@@ -5074,7 +5068,6 @@
50745068
639FCF981EBC7B9700778193 /* SentryEvent.h in Headers */,
50755069
03F84D2527DD414C008FE43F /* SentryThreadState.hpp in Headers */,
50765070
8E4E7C6D25DAAAFE006AB9E2 /* SentryTransaction.h in Headers */,
5077-
63FE715D20DA4C1100CDBAE8 /* SentryCrashSymbolicator.h in Headers */,
50785071
FAE2DABA2E1F318900262307 /* SentryProfilingSwiftHelpers.h in Headers */,
50795072
D8ACE3CF2762187D00F5A213 /* SentryFileIOTrackingIntegration.h in Headers */,
50805073
7BECF42226145C5D00D9826E /* SentryMechanismMeta.h in Headers */,
@@ -5826,7 +5819,6 @@
58265819
63FE716720DA4C1100CDBAE8 /* SentryCrashCPU.c in Sources */,
58275820
63FE717320DA4C1100CDBAE8 /* SentryCrashC.c in Sources */,
58285821
6293F5752D422A95002BC3BD /* SentryStacktraceCodable.swift in Sources */,
5829-
63FE712120DA4C1000CDBAE8 /* SentryCrashSymbolicator.c in Sources */,
58305822
627C77892D50B6840055E966 /* SentryBreadcrumbCodable.swift in Sources */,
58315823
63FE70D720DA4C1000CDBAE8 /* SentryCrashMonitor_MachException.c in Sources */,
58325824
7B96572226830D2400C66E25 /* SentryScopeSyncC.c in Sources */,

Sources/Sentry/SentryCrashStackEntryMapper.m

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,36 +25,15 @@ - (SentryFrame *)sentryCrashStackEntryToSentryFrame:(SentryCrashStackEntry)stack
2525
{
2626
SentryFrame *frame = [[SentryFrame alloc] init];
2727

28-
if (stackEntry.symbolAddress != 0) {
29-
frame.symbolAddress = sentry_formatHexAddressUInt64(stackEntry.symbolAddress);
30-
}
31-
3228
frame.instructionAddress = sentry_formatHexAddressUInt64(stackEntry.address);
3329

34-
if (stackEntry.symbolName != NULL) {
35-
frame.function = [NSString stringWithCString:stackEntry.symbolName
36-
encoding:NSUTF8StringEncoding];
37-
}
38-
39-
// If there is no symbolication, because debug was disabled
40-
// we get image from the cache.
41-
if (stackEntry.imageAddress == 0 && stackEntry.imageName == NULL) {
42-
SentryBinaryImageInfo *info = [SentryDependencyContainer.sharedInstance.binaryImageCache
43-
imageByAddress:(uint64_t)stackEntry.address];
44-
45-
frame.imageAddress = sentry_formatHexAddressUInt64(info.address);
46-
frame.package = info.name;
47-
frame.inApp = @([self.inAppLogic isInApp:info.name]);
48-
} else {
49-
frame.imageAddress = sentry_formatHexAddressUInt64(stackEntry.imageAddress);
30+
// Get image from the cache.
31+
SentryBinaryImageInfo *info = [SentryDependencyContainer.sharedInstance.binaryImageCache
32+
imageByAddress:(uint64_t)stackEntry.address];
5033

51-
if (stackEntry.imageName != NULL) {
52-
NSString *imageName = [NSString stringWithCString:stackEntry.imageName
53-
encoding:NSUTF8StringEncoding];
54-
frame.package = imageName;
55-
frame.inApp = @([self.inAppLogic isInApp:imageName]);
56-
}
57-
}
34+
frame.imageAddress = sentry_formatHexAddressUInt64(info.address);
35+
frame.package = info.name;
36+
frame.inApp = @([self.inAppLogic isInApp:info.name]);
5837

5938
return frame;
6039
}

Sources/Sentry/SentryDefaultThreadInspector.m

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#import "SentryCrashStackCursor.h"
44
#include "SentryCrashStackCursor_MachineContext.h"
55
#import "SentryCrashStackEntryMapper.h"
6-
#include "SentryCrashSymbolicator.h"
76
#import "SentryFrame.h"
87
#import "SentryOptions.h"
98
#import "SentryStacktrace.h"
@@ -32,7 +31,7 @@ @interface SentryDefaultThreadInspector ()
3231
// async-signal-safe.
3332
unsigned int
3433
getStackEntriesFromThread(SentryCrashThread thread, struct SentryCrashMachineContext *context,
35-
SentryCrashStackEntry *buffer, unsigned int maxEntries, bool asyncUnsafeSymbolicate)
34+
SentryCrashStackEntry *buffer, unsigned int maxEntries)
3635
{
3736
sentrycrashmc_getContextForThread(thread, context, NO);
3837
SentryCrashStackCursor stackCursor;
@@ -43,10 +42,8 @@ @interface SentryDefaultThreadInspector ()
4342
while (stackCursor.advanceCursor(&stackCursor)) {
4443
if (entries == maxEntries)
4544
break;
46-
if (asyncUnsafeSymbolicate == false || stackCursor.symbolicate(&stackCursor)) {
47-
buffer[entries] = stackCursor.stackEntry;
48-
entries++;
49-
}
45+
buffer[entries] = stackCursor.stackEntry;
46+
entries++;
5047
}
5148

5249
return entries;
@@ -56,12 +53,10 @@ @implementation SentryDefaultThreadInspector
5653

5754
- (id)initWithStacktraceBuilder:(SentryStacktraceBuilder *)stacktraceBuilder
5855
andMachineContextWrapper:(id<SentryCrashMachineContextWrapper>)machineContextWrapper
59-
symbolicate:(BOOL)symbolicate
6056
{
6157
if (self = [super init]) {
6258
self.stacktraceBuilder = stacktraceBuilder;
6359
self.machineContextWrapper = machineContextWrapper;
64-
self.symbolicate = symbolicate;
6560
}
6661
return self;
6762
}
@@ -75,13 +70,11 @@ - (instancetype)initWithOptions:(SentryOptions *_Nullable)options
7570
[[SentryCrashStackEntryMapper alloc] initWithInAppLogic:inAppLogic];
7671
SentryStacktraceBuilder *stacktraceBuilder =
7772
[[SentryStacktraceBuilder alloc] initWithCrashStackEntryMapper:crashStackEntryMapper];
78-
stacktraceBuilder.symbolicate = options.debug;
7973

8074
id<SentryCrashMachineContextWrapper> machineContextWrapper =
8175
[[SentryCrashDefaultMachineContextWrapper alloc] init];
8276
return [self initWithStacktraceBuilder:stacktraceBuilder
83-
andMachineContextWrapper:machineContextWrapper
84-
symbolicate:options.debug];
77+
andMachineContextWrapper:machineContextWrapper];
8578
}
8679

8780
- (SentryStacktrace *)stacktraceForCurrentThreadAsyncUnsafe
@@ -144,8 +137,6 @@ - (SentryStacktrace *)stacktraceForCurrentThreadAsyncUnsafe
144137
thread_act_array_t suspendedThreads = NULL;
145138
mach_msg_type_number_t numSuspendedThreads = 0;
146139

147-
bool symbolicate = self.symbolicate;
148-
149140
// SentryThreadInspector is crashing when there is too many threads.
150141
// We add a limit of 70 threads because in test with up to 100 threads it seems fine.
151142
// We are giving it an extra safety margin.
@@ -165,7 +156,7 @@ - (SentryStacktrace *)stacktraceForCurrentThreadAsyncUnsafe
165156
for (int i = 0; i < numSuspendedThreads; i++) {
166157
if (suspendedThreads[i] != currentThread) {
167158
int numberOfEntries = getStackEntriesFromThread(suspendedThreads[i], context,
168-
threadsInfos[i].stackEntries, MAX_STACKTRACE_LENGTH, symbolicate);
159+
threadsInfos[i].stackEntries, MAX_STACKTRACE_LENGTH);
169160
threadsInfos[i].stackLength = numberOfEntries;
170161
} else {
171162
// We can't use 'getStackEntriesFromThread' to retrieve stack frames from the

Sources/Sentry/SentryStacktraceBuilder.m

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#import "SentryCrashStackCursor_MachineContext.h"
44
#import "SentryCrashStackCursor_SelfThread.h"
55
#import "SentryCrashStackEntryMapper.h"
6-
#import "SentryCrashSymbolicator.h"
76
#import "SentryFrame.h"
87
#import "SentryLogC.h"
98
#import "SentryStacktrace.h"
@@ -24,7 +23,6 @@ - (id)initWithCrashStackEntryMapper:(SentryCrashStackEntryMapper *)crashStackEnt
2423
{
2524
if (self = [super init]) {
2625
self.crashStackEntryMapper = crashStackEntryMapper;
27-
self.symbolicate = NO;
2826
}
2927
return self;
3028
}
@@ -41,10 +39,8 @@ - (SentryStacktrace *)retrieveStacktraceFromCursor:(SentryCrashStackCursor)stack
4139
// skip the marker frame
4240
continue;
4341
}
44-
if (self.symbolicate == NO || stackCursor.symbolicate(&stackCursor)) {
45-
frame = [self.crashStackEntryMapper mapStackEntryWithCursor:stackCursor];
46-
[frames addObject:frame];
47-
}
42+
frame = [self.crashStackEntryMapper mapStackEntryWithCursor:stackCursor];
43+
[frames addObject:frame];
4844
}
4945

5046
return [SentryStacktraceBuilder buildStacktraceFromFrames:frames];
@@ -96,7 +92,6 @@ - (nullable SentryStacktrace *)buildStacktraceForCurrentThreadAsyncUnsafe
9692
SENTRY_LOG_DEBUG(@"Building async-unsafe stack trace...");
9793
SentryCrashStackCursor stackCursor;
9894
sentrycrashsc_initSelfThread(&stackCursor, 0);
99-
stackCursor.symbolicate = sentrycrashsymbolicator_symbolicate_async_unsafe;
10095
return [self retrieveStacktraceFromCursor:stackCursor];
10196
}
10297

Sources/Sentry/SentryUseNSExceptionCallstackWrapper.m

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#import "SentryUseNSExceptionCallstackWrapper.h"
22
#import "SentryCrashStackEntryMapper.h"
3-
#import "SentryCrashSymbolicator.h"
43
#import "SentryOptions+Private.h"
54
#import "SentrySDK+Private.h"
65
#import "SentryStacktraceBuilder.h"
@@ -40,12 +39,11 @@ - (instancetype)initWithName:(NSExceptionName)aName
4039
SentryCrashStackEntryMapper *crashStackToEntryMapper = [self buildCrashStackToEntryMapper];
4140
NSMutableArray<SentryFrame *> *frames = [NSMutableArray array];
4241

43-
// Iterate over all the addresses, symbolicate and create a SentryFrame
42+
// Iterate over all the addresses and create a SentryFrame
4443
[self.returnAddressesArray
4544
enumerateObjectsUsingBlock:^(NSNumber *_Nonnull obj, NSUInteger idx, BOOL *_Nonnull stop) {
4645
SentryCrashStackCursor stackCursor;
4746
stackCursor.stackEntry.address = [obj unsignedLongValue];
48-
sentrycrashsymbolicator_symbolicate_async_unsafe_sentryDlAddr(&stackCursor);
4947

5048
[frames addObject:[crashStackToEntryMapper
5149
sentryCrashStackEntryToSentryFrame:stackCursor.stackEntry]];

Sources/Sentry/include/SentryDefaultThreadInspector.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
1515
SENTRY_NO_INIT
1616

1717
- (id)initWithStacktraceBuilder:(SentryStacktraceBuilder *)stacktraceBuilder
18-
andMachineContextWrapper:(id<SentryCrashMachineContextWrapper>)machineContextWrapper
19-
symbolicate:(BOOL)symbolicate;
18+
andMachineContextWrapper:(id<SentryCrashMachineContextWrapper>)machineContextWrapper;
2019

2120
- (instancetype)initWithOptions:(SentryOptions *_Nullable)options;
2221

Sources/Sentry/include/SentryStacktraceBuilder.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@ NS_ASSUME_NONNULL_BEGIN
1515
@interface SentryStacktraceBuilder : NSObject
1616
SENTRY_NO_INIT
1717

18-
/**
19-
* Whether the stack trace frames should be fully symbolicated
20-
* or only contain instruction address and binary image.
21-
*/
22-
@property (nonatomic) BOOL symbolicate;
23-
2418
- (id)initWithCrashStackEntryMapper:(SentryCrashStackEntryMapper *)crashStackEntryMapper;
2519

2620
/**

Sources/SentryCrash/Recording/SentryCrashReport.c

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -799,20 +799,6 @@ writeBacktrace(const SentryCrashReportWriter *const writer, const char *const ke
799799
while (stackCursor->advanceCursor(stackCursor)) {
800800
writer->beginObject(writer, NULL);
801801
{
802-
if (stackCursor->symbolicate(stackCursor)) {
803-
if (stackCursor->stackEntry.imageName != NULL) {
804-
writer->addStringElement(writer, SentryCrashField_ObjectName,
805-
sentrycrashfu_lastPathEntry(stackCursor->stackEntry.imageName));
806-
}
807-
writer->addUIntegerElement(writer, SentryCrashField_ObjectAddr,
808-
stackCursor->stackEntry.imageAddress);
809-
if (stackCursor->stackEntry.symbolName != NULL) {
810-
writer->addStringElement(writer, SentryCrashField_SymbolName,
811-
stackCursor->stackEntry.symbolName);
812-
}
813-
writer->addUIntegerElement(writer, SentryCrashField_SymbolAddr,
814-
stackCursor->stackEntry.symbolAddress);
815-
}
816802
writer->addUIntegerElement(
817803
writer, SentryCrashField_InstructionAddr, stackCursor->stackEntry.address);
818804
}

Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626
#include "SentryCrashStackCursor.h"
2727
#include "SentryCrashCPU.h"
28-
#include "SentryCrashSymbolicator.h"
2928
#include <stdlib.h>
3029

3130
#include "SentryAsyncSafeLog.h"
@@ -46,17 +45,12 @@ sentrycrashsc_resetCursor(SentryCrashStackCursor *cursor)
4645
cursor->state.currentDepth = 0;
4746
cursor->state.hasGivenUp = false;
4847
cursor->stackEntry.address = 0;
49-
cursor->stackEntry.imageAddress = 0;
50-
cursor->stackEntry.imageName = NULL;
51-
cursor->stackEntry.symbolAddress = 0;
52-
cursor->stackEntry.symbolName = NULL;
5348
}
5449

5550
void
5651
sentrycrashsc_initCursor(SentryCrashStackCursor *cursor,
5752
void (*resetCursor)(SentryCrashStackCursor *), bool (*advanceCursor)(SentryCrashStackCursor *))
5853
{
59-
cursor->symbolicate = sentrycrashsymbolicator_symbolicate_async_unsafe_sentryDlAddr;
6054
cursor->advanceCursor = advanceCursor != NULL ? advanceCursor : g_advanceCursor;
6155
cursor->resetCursor = resetCursor != NULL ? resetCursor : sentrycrashsc_resetCursor;
6256
cursor->resetCursor(cursor);

Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,6 @@ extern "C" {
4646
typedef struct {
4747
/** Current address in the stack trace. */
4848
uintptr_t address;
49-
50-
/** The name (if any) of the binary image the current address falls
51-
* inside. */
52-
const char *imageName;
53-
54-
/** The starting address of the binary image the current address falls
55-
* inside. */
56-
uintptr_t imageAddress;
57-
58-
/** The name (if any) of the closest symbol to the current address. */
59-
const char *symbolName;
60-
61-
/** The address of the closest symbol to the current address. */
62-
uintptr_t symbolAddress;
6349
} SentryCrashStackEntry;
6450

6551
typedef struct SentryCrashStackCursor {
@@ -79,10 +65,6 @@ typedef struct SentryCrashStackCursor {
7965
/** Advance the cursor to the next stack entry. */
8066
bool (*advanceCursor)(struct SentryCrashStackCursor *);
8167

82-
/** Attempt to symbolicate the current address, filling in the fields in
83-
* stackEntry. */
84-
bool (*symbolicate)(struct SentryCrashStackCursor *);
85-
8668
/** Internal context-specific information. */
8769
void *context[SentryCrashSC_CONTEXT_SIZE];
8870
} SentryCrashStackCursor;

0 commit comments

Comments
 (0)