This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 1/3] Fix segfault when unwinding JIT frames using a custom reader.
- From: Sanjoy Das <sanjoy at playingwithpointers dot com>
- To: gdb-patches at sourceware dot org
- Cc: Sanjoy Das <sanjoy at playingwithpointers dot com>
- Date: Mon, 8 Oct 2012 17:17:27 +0530
- Subject: [PATCH 1/3] Fix segfault when unwinding JIT frames using a custom reader.
- References: <1349696849-9056-1-git-send-email-sanjoy@playingwithpointers.com>
Issue http://sourceware.org/bugzilla/show_bug.cgi?id=14550
---
gdb/ChangeLog | 7 +++++++
gdb/jit.c | 14 ++++++++++++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8fe5e27..e57e5c1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2012-10-08 Sanjoy Das <sanjoy@playingwithpointers.com>
+
+ PR gdb/14550
+
+ * jit.c (finalize_symtab): Ensure that only the global block has a
+ NULL superblock.
+
2012-10-06 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix crash during stepping on ppc32.
diff --git a/gdb/jit.c b/gdb/jit.c
index 9e8f295..eff2ed6 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -724,8 +724,18 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
gdb_block_iter = gdb_block_iter->next)
{
if (gdb_block_iter->parent != NULL)
- BLOCK_SUPERBLOCK (gdb_block_iter->real_block) =
- gdb_block_iter->parent->real_block;
+ {
+ /* If the plugin specifically mentioned a parent block, we
+ use that. */
+ BLOCK_SUPERBLOCK (gdb_block_iter->real_block) =
+ gdb_block_iter->parent->real_block;
+ }
+ else
+ {
+ /* And if not, we set a default parent block. */
+ BLOCK_SUPERBLOCK (gdb_block_iter->real_block) =
+ BLOCKVECTOR_BLOCK (symtab->blockvector, STATIC_BLOCK);
+ }
}
/* Free memory. */
--
1.7.10.4