aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/tui')
-rw-r--r--gdb/tui/tui-data.c14
-rw-r--r--gdb/tui/tui-data.h5
-rw-r--r--gdb/tui/tui-source.c5
-rw-r--r--gdb/tui/tui-winsource.c3
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