aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog40
-rw-r--r--gdb/source.c6
-rw-r--r--gdb/tui/tui-data.c2
-rw-r--r--gdb/tui/tui-data.h3
-rw-r--r--gdb/tui/tui-disasm.c4
-rw-r--r--gdb/tui/tui-out.c2
-rw-r--r--gdb/tui/tui-source.c10
-rw-r--r--gdb/tui/tui-stack.c30
-rw-r--r--gdb/tui/tui-stack.h2
-rw-r--r--gdb/tui/tui-winsource.c4
-rw-r--r--gdb/tui/tui.c4
-rw-r--r--gdb/tui/tui.h2
12 files changed, 78 insertions, 31 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 680529c..8169579 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,45 @@
2013-02-03 Jan Kratochvil <jan.kratochvil@redhat.com>
+ * source.c (print_source_lines_base): Print for TUI also "fullname".
+ * tui/tui-data.c (init_content_element): Change tui_locator_element
+ field to full_name.
+ * tui/tui-data.h (struct tui_locator_element): Likewise.
+ * tui/tui-disasm.c (tui_show_disassem_and_update_source): Rename
+ tui_update_locator_filename calls to tui_update_locator_fullname.
+ Replace symtab->filename refererence by symtab_to_fullname call.
+ * tui/tui-out.c (tui_field_string): Check for "fullname" now.
+ * tui/tui-source.c (tui_set_source_content): Change tui_locator_element
+ field to full_name. Replace symtab->filename refererence by
+ symtab_to_fullname call.
+ (tui_show_symtab_source): Rename parameter to fullname. Change
+ tui_locator_element field to full_name.
+ * tui/tui-stack.c: Include source.h.
+ (tui_set_locator_filename): Rename the declaration to ...
+ (tui_set_locator_fullname): ... here. Rename its parameter to
+ fullname, updates its comment.
+ (tui_set_locator_info): Rename its parameter to fullname.
+ (tui_set_locator_filename): Rename the definition to ...
+ (tui_set_locator_fullname): ... here. Rename its parameter to
+ fullname, updates its comment. Change tui_locator_element field to
+ full_name.
+ (tui_set_locator_info): Rename its parameter to fullname.
+ (tui_set_locator_info): Rename callee to tui_set_locator_fullname.
+ (tui_update_locator_filename): Rename to ...
+ (tui_update_locator_fullname): ... here. Rename callee to
+ tui_set_locator_fullname.
+ (tui_show_frame_info): Replace symtab->filename refererence by
+ symtab_to_fullname call.
+ * tui/tui-stack.h (tui_update_locator_filename): Rename to ...
+ (tui_update_locator_fullname): ... here.
+ * tui/tui-winsource.c (tui_display_main): Rename the callee to
+ tui_update_locator_fullname. Replace symtab->filename refererence by
+ symtab_to_fullname call.
+ * tui/tui.c (tui_show_source): Rename its parameter to fullname.
+ Rename the callee to tui_update_locator_fullname.
+ * tui/tui.h (tui_show_source): Rename its parameter to fullname.
+
+2013-02-03 Jan Kratochvil <jan.kratochvil@redhat.com>
+
* ada-lang.c (user_select_syms): Replace symtab->filename refererences
by symtab_to_filename_for_display calls.
* breakpoint.c (print_breakpoint_location, resolve_sal_pc): Likewise.
diff --git a/gdb/source.c b/gdb/source.c
index 45140fc..ef2ea03 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -1346,7 +1346,11 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
ui_out_text (uiout, "\tin ");
ui_out_field_string (uiout, "file",
symtab_to_filename_for_display (s));
- if (ui_out_is_mi_like_p (uiout))
+
+ /* TUI expects the "fullname" field. While it is
+ !ui_out_is_mi_like_p compared to CLI it is !ui_source_list. */
+ if (ui_out_is_mi_like_p (uiout)
+ || !ui_out_test_flags (uiout, ui_source_list))
{
const char *fullname = symtab_to_fullname (s);
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index 609e78e..f85676f 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -510,7 +510,7 @@ init_content_element (struct tui_win_element *element,
element->which_element.data.content = (char*) NULL;
break;
case LOCATOR_WIN:
- element->which_element.locator.file_name[0] =
+ element->which_element.locator.full_name[0] =
element->which_element.locator.proc_name[0] = (char) 0;
element->which_element.locator.line_no = 0;
element->which_element.locator.addr = 0;
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 703eeb8..8f86306 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -203,7 +203,8 @@ struct tui_command_element
/* Elements in the locator window content. */
struct tui_locator_element
{
- char file_name[MAX_LOCATOR_ELEMENT_LEN];
+ /* Resolved absolute filename as returned by symtab_to_fullname. */
+ char full_name[MAX_LOCATOR_ELEMENT_LEN];
char proc_name[MAX_LOCATOR_ELEMENT_LEN];
int line_no;
CORE_ADDR addr;
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 60177fe..42204ee 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -316,10 +316,10 @@ tui_show_disassem_and_update_source (struct gdbarch *gdbarch,
if (sal.symtab)
{
set_current_source_symtab_and_line (&sal);
- tui_update_locator_filename (sal.symtab->filename);
+ tui_update_locator_fullname (symtab_to_fullname (sal.symtab));
}
else
- tui_update_locator_filename ("?");
+ tui_update_locator_fullname ("?");
}
return;
diff --git a/gdb/tui/tui-out.c b/gdb/tui/tui-out.c
index 922fe14..14dc1de 100644
--- a/gdb/tui/tui-out.c
+++ b/gdb/tui/tui-out.c
@@ -84,7 +84,7 @@ tui_field_string (struct ui_out *uiout,
if (data->base.suppress_output)
return;
- if (fldname && data->line > 0 && strcmp (fldname, "file") == 0)
+ if (fldname && data->line > 0 && strcmp (fldname, "fullname") == 0)
{
data->start_of_line ++;
if (data->line > 0)
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index 52b6f41..e599382 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -153,8 +153,8 @@ tui_set_source_content (struct symtab *s,
cur_line_no;
element->which_element.source.is_exec_point =
(filename_cmp (((struct tui_win_element *)
- locator->content[0])->which_element.locator.file_name,
- s->filename) == 0
+ locator->content[0])->which_element.locator.full_name,
+ symtab_to_fullname (s)) == 0
&& cur_line_no == ((struct tui_win_element *)
locator->content[0])->which_element.locator.line_no);
if (c != EOF)
@@ -335,14 +335,14 @@ tui_show_symtab_source (struct gdbarch *gdbarch, struct symtab *s,
/* Answer whether the source is currently displayed in the source
window. */
int
-tui_source_is_displayed (const char *fname)
+tui_source_is_displayed (const char *fullname)
{
return (TUI_SRC_WIN != NULL
&& TUI_SRC_WIN->generic.content_in_use
&& (filename_cmp (((struct tui_win_element *)
(tui_locator_win_info_ptr ())->
- content[0])->which_element.locator.file_name,
- fname) == 0));
+ content[0])->which_element.locator.full_name,
+ fullname) == 0));
}
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 515730f..7adf896 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -29,6 +29,7 @@
#include "top.h"
#include "gdb-demangle.h"
#include "gdb_string.h"
+#include "source.h"
#include "tui/tui.h"
#include "tui/tui-data.h"
#include "tui/tui-stack.h"
@@ -44,12 +45,12 @@
Returns a pointer to a static area holding the result. */
static char *tui_get_function_from_frame (struct frame_info *fi);
-/* Set the filename portion of the locator. */
-static void tui_set_locator_filename (const char *filename);
+/* Set the full_name portion of the locator. */
+static void tui_set_locator_fullname (const char *fullname);
/* Update the locator, with the provided arguments. */
static void tui_set_locator_info (struct gdbarch *gdbarch,
- const char *filename,
+ const char *fullname,
const char *procname,
int lineno, CORE_ADDR addr);
@@ -276,27 +277,27 @@ tui_show_locator_content (void)
/* Set the filename portion of the locator. */
static void
-tui_set_locator_filename (const char *filename)
+tui_set_locator_fullname (const char *fullname)
{
struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
struct tui_locator_element *element;
if (locator->content[0] == NULL)
{
- tui_set_locator_info (NULL, filename, NULL, 0, 0);
+ tui_set_locator_info (NULL, fullname, NULL, 0, 0);
return;
}
element = &((struct tui_win_element *)
locator->content[0])->which_element.locator;
- element->file_name[0] = 0;
- strcat_to_buf (element->file_name, MAX_LOCATOR_ELEMENT_LEN, filename);
+ element->full_name[0] = 0;
+ strcat_to_buf (element->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
}
/* Update the locator, with the provided arguments. */
static void
tui_set_locator_info (struct gdbarch *gdbarch,
- const char *filename,
+ const char *fullname,
const char *procname,
int lineno,
CORE_ADDR addr)
@@ -318,14 +319,14 @@ tui_set_locator_info (struct gdbarch *gdbarch,
element->line_no = lineno;
element->addr = addr;
element->gdbarch = gdbarch;
- tui_set_locator_filename (filename);
+ tui_set_locator_fullname (fullname);
}
-/* Update only the filename portion of the locator. */
+/* Update only the full_name portion of the locator. */
void
-tui_update_locator_filename (const char *filename)
+tui_update_locator_fullname (const char *fullname)
{
- tui_set_locator_filename (filename);
+ tui_set_locator_fullname (fullname);
tui_show_locator_content ();
}
@@ -348,11 +349,12 @@ tui_show_frame_info (struct frame_info *fi)
find_frame_sal (fi, &sal);
source_already_displayed = sal.symtab != 0
- && tui_source_is_displayed (sal.symtab->filename);
+ && tui_source_is_displayed (symtab_to_fullname (sal.symtab));
if (get_frame_pc_if_available (fi, &pc))
tui_set_locator_info (get_frame_arch (fi),
- sal.symtab == 0 ? "??" : sal.symtab->filename,
+ (sal.symtab == 0
+ ? "??" : symtab_to_fullname (sal.symtab)),
tui_get_function_from_frame (fi),
sal.line,
pc);
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
index f589639..9ba3806 100644
--- a/gdb/tui/tui-stack.h
+++ b/gdb/tui/tui-stack.h
@@ -24,7 +24,7 @@
struct frame_info;
-extern void tui_update_locator_filename (const char *);
+extern void tui_update_locator_fullname (const char *);
extern void tui_show_locator_content (void);
extern void tui_show_frame_info (struct frame_info *);
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 225b890..ee6827e 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -59,9 +59,9 @@ tui_display_main (void)
tui_update_source_windows_with_addr (gdbarch, addr);
sal = find_pc_line (addr, 0);
if (sal.symtab)
- tui_update_locator_filename (sal.symtab->filename);
+ tui_update_locator_fullname (symtab_to_fullname (sal.symtab));
else
- tui_update_locator_filename ("??");
+ tui_update_locator_fullname ("??");
}
}
}
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index d609de3..27d5157 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -532,7 +532,7 @@ tui_reset (void)
#endif
void
-tui_show_source (const char *file, int line)
+tui_show_source (const char *fullname, int line)
{
struct symtab_and_line cursal = get_current_source_symtab_and_line ();
@@ -540,7 +540,7 @@ tui_show_source (const char *file, int line)
tui_add_win_to_layout (SRC_WIN);
tui_update_source_windows_with_line (cursal.symtab, line);
- tui_update_locator_filename (file);
+ tui_update_locator_fullname (fullname);
}
void
diff --git a/gdb/tui/tui.h b/gdb/tui/tui.h
index 4ed608a..76a4804 100644
--- a/gdb/tui/tui.h
+++ b/gdb/tui/tui.h
@@ -95,7 +95,7 @@ extern void tui_set_key_mode (enum tui_key_mode mode);
extern int tui_active;
-extern void tui_show_source (const char *file, int line);
+extern void tui_show_source (const char *fullname, int line);
extern struct ui_out *tui_out_new (struct ui_file *stream);