Index: src/gdb-jit.cc |
=================================================================== |
--- src/gdb-jit.cc (revision 14159) |
+++ src/gdb-jit.cc (working copy) |
@@ -1213,8 +1213,11 @@ |
w->WriteSLEB128(StandardFrameConstants::kContextOffset); |
block_size.set(static_cast<uint32_t>(w->position() - block_start)); |
} |
+ |
+ w->WriteULEB128(0); // Terminate the sub program. |
} |
+ w->WriteULEB128(0); // Terminate the compile unit. |
size.set(static_cast<uint32_t>(w->position() - start)); |
return true; |
} |
@@ -1324,15 +1327,14 @@ |
// The real slot ID is internal_slots + context_slot_id. |
int internal_slots = Context::MIN_CONTEXT_SLOTS; |
int locals = scope->StackLocalCount(); |
- int total_children = |
- params + slots + context_slots + internal_slots + locals + 2; |
+ // Total children is params + slots + context_slots + internal_slots + |
+ // locals + 2 (__function and __context). |
// The extra duplication below seems to be necessary to keep |
// gdb from getting upset on OSX. |
w->WriteULEB128(current_abbreviation++); // Abbreviation code. |
w->WriteULEB128(DW_TAG_SUBPROGRAM); |
- w->Write<uint8_t>( |
- total_children != 0 ? DW_CHILDREN_YES : DW_CHILDREN_NO); |
+ w->Write<uint8_t>(DW_CHILDREN_YES); |
w->WriteULEB128(DW_AT_NAME); |
w->WriteULEB128(DW_FORM_STRING); |
w->WriteULEB128(DW_AT_LOW_PC); |
@@ -1384,9 +1386,7 @@ |
// The context. |
WriteVariableAbbreviation(w, current_abbreviation++, true, false); |
- if (total_children != 0) { |
- w->WriteULEB128(0); // Terminate the sibling list. |
- } |
+ w->WriteULEB128(0); // Terminate the sibling list. |
} |
w->WriteULEB128(0); // Terminate the table. |