[gdb] Make execute_command_to_string return string on throw
The pattern for using execute_command_to_string is: ... std::string output; output = execute_fn_to_string (fn, term_out); ... This results in a problem when using it in a try/catch: ... try { output = execute_fn_to_string (fn, term_out) } catch (const gdb_exception &e) { /* Use output. */ } ... If an expection was thrown during execute_fn_to_string, then the output remains unassigned, while it could be worthwhile to known what output was generated by gdb before the expection was thrown. Fix this by returning the string using a parameter instead: ... execute_fn_to_string (output, fn, term_out) ... Also add a variant without string parameter, to support places where the function is used while ignoring the result: ... execute_fn_to_string (fn, term_out) ... Tested on x86_64-linux.
This commit is contained in:
parent
fa9ce2c143
commit
84a6adfd4c
7 changed files with 50 additions and 20 deletions
|
@ -3028,8 +3028,8 @@ frame_apply_command_count (const char *which_command,
|
|||
set to the selected frame. */
|
||||
scoped_restore_current_thread restore_fi_current_frame;
|
||||
|
||||
cmd_result = execute_command_to_string
|
||||
(cmd, from_tty, gdb_stdout->term_out ());
|
||||
execute_command_to_string
|
||||
(cmd_result, cmd, from_tty, gdb_stdout->term_out ());
|
||||
}
|
||||
fi = get_selected_frame (_("frame apply "
|
||||
"unable to get selected frame."));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue