summaryrefslogtreecommitdiff
path: root/gdb/disasm.c
diff options
context:
space:
mode:
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>2003-04-08 01:40:31 +0000
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>2003-04-08 01:40:31 +0000
commitee61917fb3341bfd2e8fccfe968601e5d289ca9a (patch)
treef19e6b666d0549ce439da2619ea130cd18ab43c7 /gdb/disasm.c
parent36085d11f341a59f223c4d4e3984e72afa255c13 (diff)
downloadgdb-ee61917fb3341bfd2e8fccfe968601e5d289ca9a.tar.gz
2003-04-04 Elena Zannoni <ezannoni@redhat.com>
* disasm.c (dump_insns): Move variables inside loop, or they will be freed more than once, causing wild memory corruptions. (gdb_disassembly): Look for the substring "-thread", instead of "-threads" in the target name, to make sure to find the 'multi-thread' target. Also, make sure we do the right thing with the "core" target.
Diffstat (limited to 'gdb/disasm.c')
-rw-r--r--gdb/disasm.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gdb/disasm.c b/gdb/disasm.c
index e9aabc88ac7..511855b5901 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -93,14 +93,15 @@ dump_insns (struct ui_out *uiout, disassemble_info * di,
/* parts of the symbolic representation of the address */
int unmapped;
- char *filename = NULL;
- char *name = NULL;
int offset;
int line;
struct cleanup *ui_out_chain;
for (pc = low; pc < high;)
{
+ char *filename = NULL;
+ char *name = NULL;
+
QUIT;
if (how_many >= 0)
{
@@ -358,7 +359,8 @@ gdb_disassembly (struct ui_out *uiout,
if (strcmp (target_shortname, "child") == 0
|| strcmp (target_shortname, "procfs") == 0
|| strcmp (target_shortname, "vxprocess") == 0
- || strstr (target_shortname, "-threads") != NULL)
+ || strcmp (target_shortname, "core") == 0
+ || strstr (target_shortname, "-thread") != NULL)
gdb_disassemble_from_exec = 0; /* It's a child process, read inferior mem */
else
gdb_disassemble_from_exec = 1; /* It's remote, read the exec file */