Fix to ignore source files that have a text address of 0 in their stabs entry

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@275 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
nealsid 2008-05-19 17:27:40 +00:00
parent 72bafd378d
commit b91bb881d5

View File

@ -287,6 +287,14 @@ static const int kTextSection = 1;
NSString *ext = [src pathExtension]; NSString *ext = [src pathExtension];
NSNumber *address = [NSNumber numberWithUnsignedLongLong:list->n_value]; NSNumber *address = [NSNumber numberWithUnsignedLongLong:list->n_value];
// Leopard puts .c files with no code as an offset of 0, but a
// crash can't happen here and it throws off our code that matches
// symbols to line numbers so we ignore them..
// Return YES because this isn't an error, just something we don't
// care to handle.
if ([address unsignedLongValue] == 0) {
return YES;
}
// TODO(waylonis):Ensure that we get the full path for the source file // TODO(waylonis):Ensure that we get the full path for the source file
// from the first N_SO record // from the first N_SO record
// If there is an extension, we'll consider it source code // If there is an extension, we'll consider it source code
@ -363,6 +371,8 @@ static const int kTextSection = 1;
nlist64.n_desc = SwapShortIfNeeded(list->n_desc); nlist64.n_desc = SwapShortIfNeeded(list->n_desc);
nlist64.n_value = (uint64_t)SwapLongIfNeeded(list->n_value); nlist64.n_value = (uint64_t)SwapLongIfNeeded(list->n_value);
// TODO(nealsid): is this broken? we get NO if one symbol fails
// but then we lose that information if another suceeeds
if ([self processSymbolItem:&nlist64 stringTable:strtab]) if ([self processSymbolItem:&nlist64 stringTable:strtab])
result = YES; result = YES;
} }