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 | |
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)
-rw-r--r-- | Foundation/GTMStackTrace.m | 32 | ||||
-rw-r--r-- | ReleaseNotes.txt | 7 |
2 files changed, 31 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; diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt index dee7f93..681c068 100644 --- a/ReleaseNotes.txt +++ b/ReleaseNotes.txt @@ -402,6 +402,13 @@ Changes since 1.5.1 - Added GTM_NONNULL, NS_RETURNS_RETAINED, and CF_RETURNS_RETAINED macrs to support clang analysis. +- Changed GTMStackTrace to put out a cleaner trace, and to work on 64 bit. + NOTE that if you are parsing this format, that it has changed. + eg 32 bit + #0 UnitTest - Foundation 0x0001c392 -[SenTest run] + and 64 bit + #0 UnitTest - Foundation 0x10010000001c3921 -[SenTest run] + Release 1.5.1 Changes since 1.5.0 |