aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-07-16 19:00:12 +0000
committerAndrew Cagney <cagney@redhat.com>2004-07-16 19:00:12 +0000
commitca73dd9dc688dcad8033069fb4b8b91df99cedb5 (patch)
tree7eea41efc8c4fc1a619b4d8a7cc9781b064ef595 /gdb
parent28d31b406575ae7873d5cbb988d01ad8201aab3c (diff)
downloadgdb-ca73dd9dc688dcad8033069fb4b8b91df99cedb5.zip
gdb-ca73dd9dc688dcad8033069fb4b8b91df99cedb5.tar.gz
gdb-ca73dd9dc688dcad8033069fb4b8b91df99cedb5.tar.bz2
2004-07-16 Andrew Cagney <cagney@gnu.org>
* frame.c (fprint_field): New function. (fprint_frame_id): Use fprint_field.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/frame.c19
2 files changed, 20 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 95b6569..c63ad0a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-16 Andrew Cagney <cagney@gnu.org>
+
+ * frame.c (fprint_field): New function.
+ (fprint_frame_id): Use fprint_field.
+
2004-07-15 Joel Brobecker <brobecker@gnat.com>
* ada-lang.c (ada_language_defn): Remove commented out code.
diff --git a/gdb/frame.c b/gdb/frame.c
index 0e3531a..c164d72 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -139,14 +139,25 @@ static int frame_debug;
static int backtrace_past_main;
static unsigned int backtrace_limit = UINT_MAX;
+static void
+fprint_field (struct ui_file *file, const char *name, int p, CORE_ADDR addr)
+{
+ if (p)
+ fprintf_unfiltered (file, "%s=0x%s", name, paddr_nz (addr));
+ else
+ fprintf_unfiltered (file, "!%s", name);
+}
void
fprint_frame_id (struct ui_file *file, struct frame_id id)
{
- fprintf_unfiltered (file, "{stack=0x%s,code=0x%s,special=0x%s}",
- paddr_nz (id.stack_addr),
- paddr_nz (id.code_addr),
- paddr_nz (id.special_addr));
+ fprintf_unfiltered (file, "{");
+ fprint_field (file, "stack", id.stack_addr_p, id.stack_addr);
+ fprintf_unfiltered (file, ",");
+ fprint_field (file, "code", id.code_addr_p, id.code_addr);
+ fprintf_unfiltered (file, ",");
+ fprint_field (file, "special", id.special_addr_p, id.special_addr);
+ fprintf_unfiltered (file, "}");
}
static void