From: Shahab Vahedi <shahab.vahedi@gmail.com>
To: Pedro Alves <palves@redhat.com>
Cc: gdb-patches@sourceware.org, Shahab Vahedi <shahab@synopsys.com>,
Andrew Burgess <andrew.burgess@embecosm.com>,
Tom Tromey <tom@tromey.com>,
Claudiu Zissulescu <claziss@synopsys.com>,
Francois Bedard <fbedard@synopsys.com>
Subject: Re: [PATCH v2][PR tui/9765] Fix segfault in asm TUI when reaching end of file
Date: Fri, 10 Jan 2020 13:47:00 -0000 [thread overview]
Message-ID: <20200110134734.GC3815@gmail.com> (raw)
In-Reply-To: <8f3c2363-6ab8-ce73-0f4b-b0b9efca6815@redhat.com>
On Fri, Jan 10, 2020 at 12:53:17PM +0000, Pedro Alves wrote:
> I didn't delve deep into the patch, but, I should point out one
> thing -- as described in the PR, it's a problem to let exceptions
> cross ncurses. Any kind of C++ exception. So which ncurses callback/entry
> point in gdb were we at? We need to look into it and make sure that
I have found two different call stacks with this exception. There can be
more.
Call stack 1:
#0 tui_disassemble (...) at gdb/tui/tui-disasm.c:126
#1 tui_disasm_window::set_contents (...) at gdb/tui/tui-disasm.c:241
#2 tui_source_window_base::update_source_window_as_is (...) at
gdb/tui/tui-winsource.c:184
#3 tui_source_window_base::update_source_window (...) at
gdb/tui/tui-winsource.c:173
#4 tui_update_source_windows_with_addr (...) at
gdb/tui/tui-winsource.c:207
#5 tui_set_layout (layout_type=DISASSEM_COMMAND) at
gdb/tui/tui-layout.c:181
#6 tui_layout_command (layout_name="asm", from_tty=1) at
gdb/tui/tui-layout.c:287
#7 do_const_cfunc (c=, args="asm", from_tty=1) at
gdb/cli/cli-decode.c:107
#8 cmd_func (cmd=, args="asm", from_tty=1) at
gdb/cli/cli-decode.c:1952
#9 execute_command (p="m", from_tty=1) at gdb/top.c:653
#10 catch_command_errors (...) at gdb/main.c:401
#11 captured_main_1 (context=) at gdb/main.c:1168
#12 captured_main (data=) at gdb/main.c:1193
#13 gdb_main (args=) at gdb/main.c:1218
#14 main (argc=4, argv=) at gdb/gdb.c:32
call stack 2:
#0 tui_disassemble (...)
at gdb/tui/tui-disasm.c:126
#1 tui_find_disassembly_address (...)
at gdb/tui/tui-disasm.c:157
#2 tui_disasm_window::do_scroll_vertical (this=, num_to_scroll=32)
at gdb/tui/tui-disasm.c:348
#3 tui_win_info::forward_scroll (this=, num_to_scroll=31)
at gdb/tui/tui-win.c:476
#4 tui_dispatch_ctrl_char (ch=338) at gdb/tui/tui-io.c:921
#5 tui_getc (fp=<_IO_2_1_stdin_>) at gdb/tui/tui-io.c:1005
#6 rl_read_key () at readline/readline/input.c:495
#7 readline_internal_char () at readline/readline/readline.c:573
#8 rl_callback_read_char () at readline/readline/callback.c:262
#9 gdb_rl_callback_read_char_wrapper_noexcept ()
at gdb/event-top.c:176
#10 gdb_rl_callback_read_char_wrapper (client_data=)
at gdb/event-top.c:193
#11 stdin_event_handler (error=0, client_data=) at gdb/event-top.c:515
#12 handle_file_event (file_ptr=, ready_mask=1)
at gdb/event-loop.c:731
#13 gdb_wait_for_event (block=1) at gdb/event-loop.c:857
#14 gdb_do_one_event () at gdb/event-loop.c:346
#15 start_event_loop () at gdb/event-loop.c:370
#16 captured_command_loop () at gdb/main.c:360
#17 captured_main (data=) at gdb/main.c:1203
#18 gdb_main (args=) at gdb/main.c:1218
#19 main (argc=4, argv=) at gdb/gdb.c:32
> no exceptions are thrown from it back into ncurses. Above, you're rethrowing
> non-memory exceptions, which is what made me wonder, since it sounds like
> for example a Ctrl-C at some "wrong" time may bring down GDB.
> For readline, we ended up with TRY_SJLJ/CATCH_SJLJ.
For "call stack 1", other exceptions end up here:
gdb/main.c:
catch_command_errors (...)
{
try
{
...
}
catch (const gdb_exception &e)
{
return handle_command_errors (e);
}
...
}
"call stack 2" is doomed. Probably in do_scroll_vertical () it aborts.
>
>
> Thanks,
> Pedro Alves
>
next prev parent reply other threads:[~2020-01-10 13:47 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20200110115728.13940-1-shahab.vahedi@gmail.com>
2020-01-10 12:53 ` Pedro Alves
2020-01-10 13:37 ` [PATCH] Don't let TUI exceptions escape to readline (PR tui/9765) Pedro Alves
2020-01-10 14:31 ` Shahab Vahedi
2020-01-13 20:46 ` [PATCH 2/2] gdb/tui: asm window handles invalid memory and scrolls better Andrew Burgess
2020-01-15 0:57 ` Tom Tromey
2020-01-13 22:04 ` [PATCH 1/2] gdb/tui: Prevent exceptions from trying to cross readline Andrew Burgess
2020-01-15 0:56 ` Tom Tromey
[not found] ` <cover.1578948166.git.andrew.burgess@embecosm.com>
2020-01-14 14:19 ` [PATCH 0/2] gdb/tui: Assembler window scrolling fixes Shahab Vahedi
2020-01-16 0:48 ` [PATCHv2 2/2] gdb/tui: asm window handles invalid memory and scrolls better Andrew Burgess
2020-01-21 16:27 ` Shahab Vahedi
2020-01-22 13:30 ` Shahab Vahedi
2020-01-22 16:32 ` Andrew Burgess
2020-01-22 19:26 ` Pedro Alves
2020-01-16 0:48 ` [PATCHv2 0/2] gdb/tui: Assembler window scrolling fixes Andrew Burgess
2020-01-24 11:22 ` Shahab Vahedi
2020-01-24 21:22 ` [PATCH 0/2] Further Assembler Scrolling Fixes Andrew Burgess
2020-01-24 21:22 ` [PATCH 1/2] gdb/tui: Update help text for scroll commands Andrew Burgess
2020-01-26 16:07 ` Tom Tromey
2020-01-24 21:29 ` [PATCH 2/2] gdb/tui: Disassembler scrolling of very small programs Andrew Burgess
2020-01-26 16:10 ` Tom Tromey
2020-01-31 10:10 ` Shahab Vahedi
2020-01-16 2:55 ` [PATCHv2 1/2] gdb/tui: Prevent exceptions from trying to cross readline Andrew Burgess
2020-01-10 14:42 ` [PATCH] Don't let TUI exceptions escape to readline (PR tui/9765) Tom Tromey
2020-01-10 13:47 ` Shahab Vahedi [this message]
2020-01-11 2:00 ` [PATCH v2][PR tui/9765] Fix segfault in asm TUI when reaching end of file Andrew Burgess
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200110134734.GC3815@gmail.com \
--to=shahab.vahedi@gmail.com \
--cc=andrew.burgess@embecosm.com \
--cc=claziss@synopsys.com \
--cc=fbedard@synopsys.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
--cc=shahab@synopsys.com \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox