diff options
author | Tristan Gingold <gingold@adacore.com> | 2011-06-07 12:31:07 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2011-06-07 12:31:07 +0000 |
commit | 316a8b214511686e1eccdaca157cf7aecedd47dd (patch) | |
tree | 4e691b243cdf817ad53f8a9a6c8d8c97b4c1cc48 /gdb/xcoffread.c | |
parent | ee6404d34e6e0ea4ca9e5603f37ee1eb14a51d17 (diff) | |
download | gdb-316a8b214511686e1eccdaca157cf7aecedd47dd.zip gdb-316a8b214511686e1eccdaca157cf7aecedd47dd.tar.gz gdb-316a8b214511686e1eccdaca157cf7aecedd47dd.tar.bz2 |
2011-06-07 Tristan Gingold <gingold@adacore.com>
* xcoffread.c (dwarf2_xcoff_names): New variable.
(aix_process_linenos): Add a guard.
(xcoff_symfile_finish): Free dwarf2.
(xcoff_initial_scan): Add dwarf2 support.
Diffstat (limited to 'gdb/xcoffread.c')
-rw-r--r-- | gdb/xcoffread.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index 0967529..0c4cbd1 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -152,6 +152,22 @@ struct coff_symfile_info CORE_ADDR toc_offset; }; +/* XCOFF names for dwarf sections. There is no compressed sections. */ + +static const struct dwarf2_debug_sections dwarf2_xcoff_names = { + { ".dwinfo", NULL }, + { ".dwabrev", NULL }, + { ".dwline", NULL }, + { ".dwloc", NULL }, + { NULL, NULL }, /* debug_macinfo */ + { ".dwstr", NULL }, + { ".dwrnges", NULL }, + { NULL, NULL }, /* debug_types */ + { ".dwframe", NULL }, + { NULL, NULL }, /* eh_frame */ + { NULL, NULL } /* gdb_index */ +}; + static void bf_notfound_complaint (void) { @@ -757,6 +773,10 @@ return_after_cleanup: static void aix_process_linenos (void) { + /* There is no linenos to read if there are only dwarf info. */ + if (this_symtab_psymtab == NULL) + return; + /* Process line numbers and enter them into line vector. */ process_linenos (last_source_start_addr, cur_src_end_addr); } @@ -1910,6 +1930,8 @@ xcoff_symfile_finish (struct objfile *objfile) inclTable = NULL; } inclIndx = inclLength = inclDepth = 0; + + dwarf2_free_objfile (objfile); } @@ -3022,6 +3044,13 @@ xcoff_initial_scan (struct objfile *objfile, int symfile_flags) install_minimal_symbols (objfile); + /* DWARF2 sections. */ + + if (dwarf2_has_info (objfile, &dwarf2_xcoff_names)) + dwarf2_build_psymtabs (objfile); + + dwarf2_build_frame_info (objfile); + do_cleanups (back_to); } |