diff options
author | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2010-02-25 23:06:24 +0000 |
---|---|---|
committer | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2010-02-25 23:06:24 +0000 |
commit | 0f6b25f7efe11c2a4102b2d74c5f57ddfab341c1 (patch) | |
tree | 77f229799a583d0d87158e98aed99eca9dd646f8 /Foundation/GTMStackTrace.m | |
parent | af06bed3ef545dc77bff9195a5392576b9282155 (diff) |
[Author: dmaclach]
Clean up stack traces for http://code.google.com/p/google-toolbox-for-mac/issues/detail?id=45
R=thomasvl
DELTA=23 (15 added, 1 deleted, 7 changed)
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; |