diff options
Diffstat (limited to 'gdb/tui')
-rw-r--r-- | gdb/tui/tui-data.c | 14 | ||||
-rw-r--r-- | gdb/tui/tui-data.h | 5 | ||||
-rw-r--r-- | gdb/tui/tui-source.c | 5 | ||||
-rw-r--r-- | gdb/tui/tui-winsource.c | 3 |
4 files changed, 15 insertions, 12 deletions
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 8989578..609e78e 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -541,7 +541,7 @@ init_win_info (struct tui_win_info *win_info) win_info->detail.source_info.gdbarch = NULL; win_info->detail.source_info.start_line_or_addr.loa = LOA_ADDRESS; win_info->detail.source_info.start_line_or_addr.u.addr = 0; - win_info->detail.source_info.filename = 0; + win_info->detail.source_info.fullname = NULL; break; case DATA_WIN: win_info->detail.data_display_info.data_content = (tui_win_content) NULL; @@ -681,10 +681,10 @@ tui_del_window (struct tui_win_info *win_info) generic_win->handle = (WINDOW *) NULL; generic_win->is_visible = FALSE; } - if (win_info->detail.source_info.filename) + if (win_info->detail.source_info.fullname) { - xfree (win_info->detail.source_info.filename); - win_info->detail.source_info.filename = 0; + xfree (win_info->detail.source_info.fullname); + win_info->detail.source_info.fullname = NULL; } generic_win = win_info->detail.source_info.execution_info; if (generic_win != (struct tui_gen_win_info *) NULL) @@ -731,10 +731,10 @@ tui_free_window (struct tui_win_info *win_info) generic_win->handle = (WINDOW *) NULL; } tui_free_win_content (generic_win); - if (win_info->detail.source_info.filename) + if (win_info->detail.source_info.fullname) { - xfree (win_info->detail.source_info.filename); - win_info->detail.source_info.filename = 0; + xfree (win_info->detail.source_info.fullname); + win_info->detail.source_info.fullname = NULL; } generic_win = win_info->detail.source_info.execution_info; if (generic_win != (struct tui_gen_win_info *) NULL) diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h index 245b33e..703eeb8 100644 --- a/gdb/tui/tui-data.h +++ b/gdb/tui/tui-data.h @@ -270,7 +270,10 @@ struct tui_source_info struct tui_gen_win_info *execution_info; int horizontal_offset; /* Used for horizontal scroll. */ struct tui_line_or_address start_line_or_addr; - char *filename; + + /* It is the resolved form as returned by symtab_to_fullname. */ + char *fullname; + /* Architecture associated with code at this location. */ struct gdbarch *gdbarch; }; diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c index fb60fd4..4368c04 100644 --- a/gdb/tui/tui-source.c +++ b/gdb/tui/tui-source.c @@ -99,9 +99,8 @@ tui_set_source_content (struct symtab *s, xfree (TUI_SRC_WIN->generic.title); TUI_SRC_WIN->generic.title = xstrdup (s->filename); - if (src->filename) - xfree (src->filename); - src->filename = xstrdup (s->filename); + xfree (src->fullname); + src->fullname = xstrdup (symtab_to_fullname (s)); /* Determine the threshold for the length of the line and the offset to start the display. */ diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index 6c72a6c..225b890 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -463,7 +463,8 @@ tui_update_breakpoint_info (struct tui_win_info *win, { if ((win == TUI_SRC_WIN && loc->symtab != NULL - && (filename_cmp (src->filename, loc->symtab->filename) == 0) + && filename_cmp (src->fullname, + symtab_to_fullname (loc->symtab)) == 0 && line->line_or_addr.loa == LOA_LINE && loc->line_number == line->line_or_addr.u.line_no) || (win == TUI_DISASM_WIN |