I debugged the lldb/test/lang/objc/foundation binary: % cd lldb/test/lang/objc/foundation % make % lldb a.out (lldb) b main.m:70 (lldb) r 69 NSString *str = [NSString stringWithFormat:@"Hello from '%s'", program]; -> 70 NSLog(@"NSString instance: %@", str); 71 printf("str = '%s'\n", [str cStringUsingEncoding: [NSString defaultCStringEncoding]]); 72 printf("[str length] = %zu\n", (size_t)[str length]); 73 printf("[str description] = %s\n", [[str description] UTF8String]); (lldb) script v = lldb.frame.FindVariable("str") (lldb) script print v (NSString *) str = 0x0000000100200380 @"Hello from '/Volumes/work/gclayton/Documents/src/lldb/trunk/test/lang/objc/foundation/a.out'" (lldb) script print v.GetType().GetTypeClass() 2048 (lldb) p/x 2048 (int) $2 = 0x00000800
This is eTypeClassObjCObjectPointer as expected. If you dereference the item: (lldb) script vd = v.Dereference() (lldb) script print vd.GetType().GetTypeClass() 1024 (lldb) p/x 1024 (int) $4 = 0x00000400 This is eTypeClassObjCInterface as expected. > On Jan 19, 2015, at 6:58 AM, Carlo Kok <c...@remobjects.com> wrote: > > After updating lldb (and clang/llvm) to latest I noticed that I get back a > different value for an NSString* than I used to, I used to get: > > > eTypeClassObjCObjectPointer > now I get : > eTypeClassObjCInterface > > > Also the object description property returns null because it doesn't consider > eTypeClassObjCInterface to be a pointer. I looked at the generated debug info > which looks fine (and the system lldb on osx works fine too): > > > 0x00000159: TAG_variable [7] > AT_location( fbreg +120 ) > AT_name( "qwert" ) > AT_decl_file( > "c:\projects\oxygene\testcases\work/issuedebugsilver_1.pas" ) > AT_decl_line( 8 ) > AT_type( {0x00000298} ( NSString* ) ) > > > 0x00000298: TAG_pointer_type [9] > AT_type( {0x0000029d} ( NSString ) ) > > 0x0000029d: TAG_structure_type [10] * > AT_name( "NSString" ) > AT_byte_size( 0x08 ) > AT_APPLE_runtime_class( 0x10 ) > > 0x000002a4: TAG_inheritance [11] > AT_type( {0x000002ab} ( NSObject ) ) > AT_data_member_location( 0x00 ) > > 0x000002aa: NULL > > Am i missing something obvious, or is there something broken in lldb? > > -- > Carlo Kok > <dwarf.txt>_______________________________________________ > lldb-dev mailing list > lldb-dev@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev