diff options
Diffstat (limited to 'Foundation/GTMStackTrace.m')
-rw-r--r-- | Foundation/GTMStackTrace.m | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/Foundation/GTMStackTrace.m b/Foundation/GTMStackTrace.m index 1c7bafb..568b5d7 100644 --- a/Foundation/GTMStackTrace.m +++ b/Foundation/GTMStackTrace.m @@ -158,18 +158,34 @@ static NSString *GTMStackTraceFromAddressDescriptors(struct GTMAddressDescriptor if (i) { [trace appendString:@"\n"]; } + NSString *fileName = nil; + if (descs[i].filename) { + fileName = [NSString stringWithCString:descs[i].filename + encoding:NSUTF8StringEncoding]; + fileName = [fileName lastPathComponent]; + } else { + fileName = @"??"; + } if (descs[i].class_name) { - [trace appendFormat:@"#%-2u %#08lx %s[%s %s] (%s)", - i, descs[i].address, + [trace appendFormat:@"#%-2u %-35s %0*p %s[%s %s]", + i, + [fileName UTF8String], + // sizeof(void*) * 2 is the length of the hex address (32 vs 64) and + 2 + // for the 0x prefix + sizeof(void *) * 2 + 2, + descs[i].address, (descs[i].is_class_method ? "+" : "-"), descs[i].class_name, - (descs[i].symbol ? descs[i].symbol : "??"), - (descs[i].filename ? descs[i].filename : "??")]; + (descs[i].symbol ? descs[i].symbol : "??")]; } else { - [trace appendFormat:@"#%-2u %#08lx %s() (%s)", - i, descs[i].address, - (descs[i].symbol ? descs[i].symbol : "??"), - (descs[i].filename ? descs[i].filename : "??")]; + [trace appendFormat:@"#%-2u %-35s %0*p %s()", + i, + [fileName UTF8String], + // sizeof(void*) * 2 is the length of the hex address (32 vs 64) and + 2 + // for the 0x prefix + sizeof(void *) * 2 + 2, + descs[i].address, + (descs[i].symbol ? descs[i].symbol : "??")]; } } return trace; |