public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM] archer-pmuldoon-next-over-throw: Add temporary symbol lookup (needs debuginfo), and notes on starting to use FDE instead of debuginfo.
@ 2008-11-20 16:25 pmuldoon
0 siblings, 0 replies; only message in thread
From: pmuldoon @ 2008-11-20 16:25 UTC (permalink / raw)
To: archer-commits
The branch, archer-pmuldoon-next-over-throw has been updated
via 2670d7dc0acb201c31384839639c93c8e035c2f7 (commit)
from 227a0cb2d3e6cd768f4a64f39ead8dd36561af4d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 2670d7dc0acb201c31384839639c93c8e035c2f7
Author: Phil Muldoon <pmuldoon@redhat.com>
Date: Thu Nov 20 16:23:53 2008 +0000
Add temporary symbol lookup (needs debuginfo), and notes on starting to use FDE instead of debuginfo.
-----------------------------------------------------------------------
Summary of changes:
gdb/breakpoint.c | 13 +++++++++
gdb/unwind_notes | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 86 insertions(+), 0 deletions(-)
create mode 100644 gdb/unwind_notes
First 500 lines of diff:
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 912d7ea..d34467f 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -4446,6 +4446,9 @@ create_longjmp_breakpoint (char *func_name)
void
set_longjmp_breakpoint (void)
{
+
+ struct breakpoint *terminate_bp = 0;
+ struct minimal_symbol *tm;
if (gdbarch_get_longjmp_target_p (current_gdbarch))
{
create_longjmp_breakpoint ("longjmp");
@@ -4453,6 +4456,16 @@ set_longjmp_breakpoint (void)
create_longjmp_breakpoint ("siglongjmp");
create_longjmp_breakpoint ("_siglongjmp");
}
+
+
+ tm = lookup_minimal_symbol ("std::terminate()", NULL, NULL);
+ tm = lookup_minimal_symbol ("uw_install_context", NULL, NULL);
+ tm = lookup_minimal_symbol ("uw_install_context_1", NULL, NULL);
+ if (tm != NULL)
+ terminate_bp = set_momentary_breakpoint_at_pc
+ (SYMBOL_VALUE_ADDRESS (tm), bp_breakpoint);
+ else
+ printf("Cannot find uw_install_context\n");
}
/* Delete all longjmp breakpoints from THREAD. */
diff --git a/gdb/unwind_notes b/gdb/unwind_notes
new file mode 100644
index 0000000..34ccbeb
--- /dev/null
+++ b/gdb/unwind_notes
@@ -0,0 +1,73 @@
+Breakpoint 2, _Unwind_RaiseException (exc=0x937060) at /home/pmuldoon/gcc-4.3.0/libgcc/../gcc/unwind.inc:140
+140 uw_install_context (&this_context, &cur_context);
+Current language: auto; currently c
+
+(pg-gdb) p this_context
+$14 = {
+ reg = {0x7fffca0ee188, 0x7fffca0ee190, 0x0, 0x7fffca0ee198, 0x0, 0x0, 0x7fffca0ee1c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7fffca0ee1a0, 0x7fffca0ee1a8,
+ 0x7fffca0ee1b0, 0x7fffca0ee1b8, 0x7fffca0ee1c8, 0x0},
+ cfa = 0x7fffca0ee1d0,
+ ra = 0x6dc0bb,
+ lsda = 0x0,
+ bases = {
+ tbase = 0x0,
+ dbase = 0x0,
+ func = 0x129f4f
+ },
+ flags = 4611686018427387904,
+ version = 0,
+ args_size = 0,
+ by_value = '\0' <repeats 17 times>
+}
+
+(pg-gdb) p cur_context
+$15 = {
+ reg = {0x7fffca0ee188, 0x7fffca0ee190, 0x0, 0x7fffca0ee198, 0x0, 0x0, 0x7fffca0ee220, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7fffca0ee1a0, 0x7fffca0ee1a8,
+ 0x7fffca0ee1b0, 0x7fffca0ee1b8, 0x7fffca0ee228, 0x0},
+ cfa = 0x7fffca0ee230,
+ ra = 0x4007f2,
+ lsda = 0x400a74,
+ bases = {
+ tbase = 0x0,
+ dbase = 0x0,
+ func = 0x4007e0
+ },
+ flags = 4611686018427387904,
+ version = 0,
+ args_size = 0,
+ by_value = '\0' <repeats 17 times>
+}
+
+(pg-gdb) bt
+#0 _Unwind_RaiseException (exc=0x937060) at /home/pmuldoon/gcc-4.3.0/libgcc/../gcc/unwind.inc:140
+#1 0x00000000006dc0bb in __cxa_throw (obj=0x937080, tinfo=0x600ce0, dest=0) at /home/pmuldoon/gcc-4.3.0/libstdc++-v3/libsupc++/eh_throw.cc:71
+#2 0x00000000004007d5 in function1 () at test_throw.cxx:4
+#3 0x00000000004007de in function2 () at test_throw.cxx:8
+#4 0x00000000004007f0 in main () at test_throw.cxx:13
+
+
+(pg-gdb) ptype cur_context
+type = struct _Unwind_Context {
+ void *reg[18];
+ void *cfa;
+ void *ra;
+ void *lsda;
+ struct dwarf_eh_bases bases;
+ _Unwind_Word flags;
+ _Unwind_Word version;
+ _Unwind_Word args_size;
+
+
+.eh_frame notes
+
+The .eh_frame contains one or more Call Frame Informations (CFI)
+records. Each CFI contains a Common Information Entry (CIE) and 1 or
+more Frame Description Entry (FDE) records.
+
+CFI -> CIE -> (n) -> FDE.
+
+Try working backwards to the FDE from the pc at the next command?
+
+static struct dwarf2_fde *
+dwarf2_frame_find_fde (CORE_ADDR *pc)
+
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-11-20 16:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-20 16:25 [SCM] archer-pmuldoon-next-over-throw: Add temporary symbol lookup (needs debuginfo), and notes on starting to use FDE instead of debuginfo pmuldoon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).