dje at google dot com
2015-08-17 19:15:38 UTC
https://sourceware.org/bugzilla/show_bug.cgi?id=18840
Bug ID: 18840
Summary: interp_exec doesn't use a cleanup
Product: gdb
Version: unknown
Status: NEW
Severity: normal
Priority: P2
Component: gdb
Assignee: unassigned at sourceware dot org
Reporter: dje at google dot com
Target Milestone: ---
Filing this so I don't forget it.
interp_exec has this:
struct gdb_exception
interp_exec (struct interp *interp, const char *command_str)
{
struct gdb_exception ex;
struct interp *save_command_interp;
gdb_assert (interp->procs->exec_proc != NULL);
/* See `command_interp' for why we do this. */
save_command_interp = command_interpreter;
command_interpreter = interp;
ex = interp->procs->exec_proc (interp->data, command_str);
command_interpreter = save_command_interp;
return ex;
}
so it's assuming interp->procs->exec_proc won't throw an exception.
But MI's version calls bpstat_do_actions outside of any TRY/CATCH.
I don't see any guarantees that bpstat_do_actions won't throw an exception.
See mi_execute_command.
Bug ID: 18840
Summary: interp_exec doesn't use a cleanup
Product: gdb
Version: unknown
Status: NEW
Severity: normal
Priority: P2
Component: gdb
Assignee: unassigned at sourceware dot org
Reporter: dje at google dot com
Target Milestone: ---
Filing this so I don't forget it.
interp_exec has this:
struct gdb_exception
interp_exec (struct interp *interp, const char *command_str)
{
struct gdb_exception ex;
struct interp *save_command_interp;
gdb_assert (interp->procs->exec_proc != NULL);
/* See `command_interp' for why we do this. */
save_command_interp = command_interpreter;
command_interpreter = interp;
ex = interp->procs->exec_proc (interp->data, command_str);
command_interpreter = save_command_interp;
return ex;
}
so it's assuming interp->procs->exec_proc won't throw an exception.
But MI's version calls bpstat_do_actions outside of any TRY/CATCH.
I don't see any guarantees that bpstat_do_actions won't throw an exception.
See mi_execute_command.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are receiving this mail because:
You are on the CC list for the bug.