diff options
Diffstat (limited to 'gdb/tui/tuiDisassem.c')
-rw-r--r-- | gdb/tui/tuiDisassem.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/gdb/tui/tuiDisassem.c b/gdb/tui/tuiDisassem.c index 8e59e68..e3a19b3 100644 --- a/gdb/tui/tuiDisassem.c +++ b/gdb/tui/tuiDisassem.c @@ -231,19 +231,25 @@ tuiGetBeginAsmAddress (void) if (element->addr == 0) { - /*the target is not executing, because the pc is 0 */ - - addr = parse_and_eval_address ("main"); - - if (addr == 0) - addr = parse_and_eval_address ("MAIN"); - + struct minimal_symbol *main_symbol; + + /* Find address of the start of program. + Note: this should be language specific. */ + main_symbol = lookup_minimal_symbol ("main", NULL, NULL); + if (main_symbol == 0) + main_symbol = lookup_minimal_symbol ("MAIN", NULL, NULL); + if (main_symbol == 0) + main_symbol = lookup_minimal_symbol ("_start", NULL, NULL); + if (main_symbol) + addr = SYMBOL_VALUE_ADDRESS (main_symbol); + else + addr = 0; } else /* the target is executing */ addr = element->addr; return addr; -} /* tuiGetBeginAsmAddress */ +} /* |