diff options
author | Hui Zhu <teawater@gmail.com> | 2014-04-27 22:23:43 +0800 |
---|---|---|
committer | Hui Zhu <teawater@gmail.com> | 2014-04-27 22:23:43 +0800 |
commit | 433e77fad1fda55408db072de18dcd4f9116289e (patch) | |
tree | 9f5e294f637d19220767412a3e87ce0bc74fb683 /gdb/stack.c | |
parent | 7b667436a52c584267cc78d1fbc05c84856192ee (diff) | |
download | gdb-433e77fad1fda55408db072de18dcd4f9116289e.zip gdb-433e77fad1fda55408db072de18dcd4f9116289e.tar.gz gdb-433e77fad1fda55408db072de18dcd4f9116289e.tar.bz2 |
Make "set disassemble-next-line on" can work with DUMMY_FRAME, SIGTRAMP_FRAME and ARCH_FRAME
When GDB debug DUMMY_FRAME, SIGTRAMP_FRAME and ARCH_FRAME, even if
"set disassemble-next-line on", it will not output the asm code:
(gdb) set disassemble-next-line on
(gdb) si
<signal handler called>
(gdb)
<signal handler called>
(gdb)
<signal handler called>
So make this patch make they can work together, it will become:
(gdb) si
<signal handler called>
=> 0xffffffff816bfb09 <int_with_check+0>: 65 48 8b 0c 25 c8 c7 00 00 mov %gs:0xc7c8,%rcx
(gdb)
<signal handler called>
=> 0xffffffff816bfb12 <int_with_check+9>: 48 81 e9 d8 1f 00 00 sub $0x1fd8,%rcx
(gdb)
<signal handler called>
=> 0xffffffff816bfb19 <int_with_check+16>: 8b 51 10 mov 0x10(%rcx),%edx
2014-04-27 Hui Zhu <hui@codesourcery.com>
* stack.c (print_frame_info): Call do_gdb_disassembly with
DUMMY_FRAME, SIGTRAMP_FRAME and ARCH_FRAME.
Diffstat (limited to 'gdb/stack.c')
-rw-r--r-- | gdb/stack.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/stack.c b/gdb/stack.c index da7d977..6f08aae 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -836,6 +836,13 @@ print_frame_info (struct frame_info *frame, int print_level, ui_out_text (uiout, "\n"); annotate_frame_end (); + /* If disassemble-next-line is set to auto or on output the next + instruction. */ + if (disassemble_next_line == AUTO_BOOLEAN_AUTO + || disassemble_next_line == AUTO_BOOLEAN_TRUE) + do_gdb_disassembly (get_frame_arch (frame), 1, + get_frame_pc (frame), get_frame_pc (frame) + 1); + do_cleanups (uiout_cleanup); return; } |