diff options
-rw-r--r-- | gdb/jit.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/jit-reader.c | 12 |
2 files changed, 14 insertions, 0 deletions
@@ -665,6 +665,8 @@ jit_object_close_impl (struct gdb_symbol_callbacks *cb, objfile *objfile = objfile::make (nullptr, current_program_space, objfile_name.c_str (), OBJF_NOT_FILENAME); + objfile->section_offsets.push_back (0); + objfile->sect_index_text = 0; objfile->per_bfd->gdbarch = priv_data->gdbarch; for (gdb_symtab &symtab : obj->symtabs) diff --git a/gdb/testsuite/gdb.base/jit-reader.c b/gdb/testsuite/gdb.base/jit-reader.c index 414be07..78117f0 100644 --- a/gdb/testsuite/gdb.base/jit-reader.c +++ b/gdb/testsuite/gdb.base/jit-reader.c @@ -62,6 +62,18 @@ read_debug_info (struct gdb_reader_funcs *self, (GDB_CORE_ADDR) symfile->function_stack_mangle.end, "jit_function_stack_mangle"); + /* Add some line table information. This ensures that GDB can handle + accepting this information, and can scan the table. However, this + information is constructed such that none of the tests actually hit any + of these line entries. */ + struct gdb_line_mapping mangle_lines[] = + { + { 1, (GDB_CORE_ADDR) symfile->function_stack_mangle.begin + 0 }, + { 0, (GDB_CORE_ADDR) symfile->function_stack_mangle.begin + 1 }, + }; + int mangle_nlines = sizeof (mangle_lines) / sizeof (mangle_lines[0]); + cbs->line_mapping_add (cbs, symtab, mangle_nlines, mangle_lines); + cbs->block_open (cbs, symtab, NULL, (GDB_CORE_ADDR) symfile->function_add.begin, (GDB_CORE_ADDR) symfile->function_add.end, |