mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
Make skip without argument skip the current inline function
Previously always the outermost function block was used, but since skip is now able to skip over inline functions it is more natural to skip the inline function that the program is currently executing. gdb: 2020-01-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * skip.c (skip_function_command): Make skip w/o arguments use the name of the inlined function if pc is inside any inlined function. gdb/testsuite: 2020-01-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * gdb.base/skip-inline.exp: Extend test.
This commit is contained in:
parent
e44925ae56
commit
717c684dd1
@ -1,3 +1,8 @@
|
||||
2020-01-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
* skip.c (skip_function_command): Make skip w/o arguments use the
|
||||
name of the inlined function if pc is inside any inlined function.
|
||||
|
||||
2020-01-14 Luis Machado <luis.machado@linaro.org>
|
||||
|
||||
* inf-ptrace.c (inf_ptrace_target::resume): Update comments.
|
||||
|
17
gdb/skip.c
17
gdb/skip.c
@ -209,18 +209,15 @@ skip_function_command (const char *arg, int from_tty)
|
||||
/* Default to the current function if no argument is given. */
|
||||
if (arg == NULL)
|
||||
{
|
||||
frame_info *fi = get_selected_frame (_("No default function now."));
|
||||
struct symbol *sym = get_frame_function (fi);
|
||||
const char *name = NULL;
|
||||
CORE_ADDR pc;
|
||||
|
||||
if (!last_displayed_sal_is_valid ())
|
||||
error (_("No default function now."));
|
||||
|
||||
pc = get_last_displayed_addr ();
|
||||
if (!find_pc_partial_function (pc, &name, NULL, NULL))
|
||||
{
|
||||
error (_("No function found containing current program point %s."),
|
||||
paddress (get_current_arch (), pc));
|
||||
}
|
||||
if (sym != NULL)
|
||||
name = sym->print_name ();
|
||||
else
|
||||
error (_("No function found containing current program point %s."),
|
||||
paddress (get_current_arch (), get_frame_pc (fi)));
|
||||
skip_function (name);
|
||||
return;
|
||||
}
|
||||
|
@ -1,3 +1,7 @@
|
||||
2020-01-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
* gdb.base/skip-inline.exp: Extend test.
|
||||
|
||||
2020-01-13 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gdb.dwarf2/dw2-bad-elf-other.S: New file.
|
||||
|
@ -76,3 +76,17 @@ with_test_prefix "triple step" {
|
||||
gdb_test "step 3" ".*" "step over baz, again"
|
||||
gdb_test "bt" "\\s*\\#0\\s+main.*" "again back to main"
|
||||
}
|
||||
|
||||
if ![runto_main] {
|
||||
fail "can't run to main"
|
||||
return
|
||||
}
|
||||
|
||||
gdb_test "skip delete" ".*" "skip delete"
|
||||
|
||||
with_test_prefix "skip current frame" {
|
||||
gdb_test "bt" "\\s*\\#0\\s+main.*" "in the main"
|
||||
gdb_test "step" ".*" "step into foo"
|
||||
gdb_test "bt" "\\s*\\#0\\s+foo.*" "in the foo"
|
||||
gdb_test "skip" "Function foo will be skipped when stepping\." "skip"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user