<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Apr 7, 2011, at 12:14 PM, Talin wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; "><div class="gmail_quote"><div><br class="Apple-interchange-newline">OK I've been checking this out some more, and the DIEs don't look valid to me. Take a look at this output from dwarfdump -v:</div><div><br></div><div><font face="'courier new', monospace">0x000000c7: TAG_subprogram [3] </font></div><div><font face="'courier new', monospace">0x000000c8: AT_name( .debug_str[0x000001bd] = "construct" )</font></div><div><font face="'courier new', monospace">0x000000cc: AT_MIPS_linkage_name( .debug_str[0x000001c7] = "tart.reflect.Parameter.construct(tart.core.String)" )</font></div><div><font face="'courier new', monospace">0x000000d0: AT_decl_file( 0x3d ( "/Users/talin/Projects/tart/trunk/lib/std/tart/reflect/Parameter.tart" ) )</font></div><div><font face="'courier new', monospace">0x000000d1: AT_decl_line( 0x0d ( 13 ) )</font></div><div><font face="'courier new', monospace">0x000000d2: AT_type( cu + 0x00000066 => {0x00000103} ( ) )</font></div><div><font face="'courier new', monospace">0x000000d6: AT_external( 0x01 )</font></div><div><font face="'courier new', monospace">0x000000d7: AT_low_pc( 0x0000f780 )</font></div><div><font face="'courier new', monospace">0x000000db: AT_high_pc( 0x0000f7b1 )</font></div><div><font face="'courier new', monospace">0x000000df: AT_frame_base( <0x1> 55 ( reg5 ) )</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">0x000000e1: NULL</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">0x000000e2: Compile Unit: length = 0x00000071 version = 0x0002 abbr_offset = 0x00000000 addr_size = 0x04 (next CU at 0x00000157)</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">0x000000ed: TAG_compile_unit [1] *</font></div><div><font face="'courier new', monospace">0x000000ee: AT_producer( .debug_str[0x00000001] = "0.1 tartc" )</font></div><div><font face="'courier new', monospace">0x000000f2: AT_language( 0x0002 ( DW_LANG_C ) )</font></div><div><font face="'courier new', monospace">0x000000f4: AT_name( .debug_str[0x000001fa] = "range.tart" )</font></div><div><font face="'courier new', monospace">0x000000f8: AT_entry_pc( 0x00004360 )</font></div><div><font face="'courier new', monospace">0x000000fc: AT_stmt_list( 0x00000000 ( 0x00000000 ) )</font></div><div><font face="'courier new', monospace">0x00000100: AT_comp_dir( .debug_str[0x00000205] = "/Users/talin/Projects/tart/trunk/lib/std/tart/core" )</font></div><div><font face="'courier new', monospace">0x00000104: AT_APPLE_major_runtime_vers( 0x01 )</font></div><div> </div><div>In particular note that the DIE starting at 0x0c7, which is a TAG_subprogram, has a return type (AT_type) which points to 0x103. However if you look further down, you'll see that there is no DIE at offset 0x103. Instead it looks like it's pointing into the middle of another DIE.</div></div></blockquote></span></blockquote></div><div><br></div><div>This means the subprogram type is invalid. Set a breakpoint inside createSubprogramDIE() where addType() is used to add AT_type. </div><div>-</div><div>Devang</div></body></html>