Extend "skip" command to support -file, -gfile, -function, -rfunction.
authorDoug Evans <dje@google.com>
Tue, 23 Feb 2016 21:25:18 +0000 (13:25 -0800)
committerDoug Evans <dje@google.com>
Tue, 23 Feb 2016 21:25:18 +0000 (13:25 -0800)
commitcce0e92333b872cfe036aae611b6b5d61cf58186
tree8d6534f65086b7fefee20c5ce8b33b8ad877e676
parent742e5034ef645112e4ef204e84e28cf312c1b1c5
Extend "skip" command to support -file, -gfile, -function, -rfunction.

gdb/ChangeLog:

Extend "skip" command to support -file, -gfile, -function, -rfunction.
* NEWS: Document new features.
* skip.c: #include "fnmatch.h", "gdb_regex.h".
(skiplist_entry) <file>: Renamed from filename.
<function>: Renamed from function_name.
<file_is_glob, function_is_regexp>: New members.
<compiled_function_regexp, compiled_function_regexp_is_valid>:
New members.
(make_skip_entry): New function.
(free_skiplist_entry, free_skiplist_entry_cleanup): New functions.
(make_free_skiplist_entry_cleanup): New function.
(skip_file_command): Update.
(skip_function, skip_function_command): Update.
(compile_skip_regexp): New functions.
(skip_command): Add support for new options.
(skip_info): Update.
(skip_file_p, skip_gfile_p): New functions.
(skip_function_p, skip_rfunction_p): New functions.
(function_name_is_marked_for_skip): Update and simplify.
(_initialize_step_skip): Update.
* symtab.c: #include "fnmatch.h".
(compare_glob_filenames_for_search): New function.
* symtab.h (compare_glob_filenames_for_search): Declare.
* utils.c (count_path_elements): New function.
(strip_leading_path_elements): New function.
* utils.h (count_path_elements): Declare.
(strip_leading_path_elements): Declare.

gdb/doc/ChangeLog:

* gdb.texinfo (Skipping Over Functions and Files): Document new
options to "skip" command.  Update docs of output of "info skip".

gdb/testsuite/ChangeLog:

* gdb.base/skip.c (test_skip): New function.
(end_test_skip_file_and_function): New function.
(test_skip_file_and_function): New function.
* gdb.base/skip1.c (test_skip): New function.
(skip1_test_skip_file_and_function): New function.
* gdb.base/skip.exp: Add tests for new skip options.
* gdb.base/skip-solib.exp: Update expected output.
* gdb.perf/skip-command.cc: New file.
* gdb.perf/skip-command.exp: New file.
* gdb.perf/skip-command.py: New file.
17 files changed:
gdb/ChangeLog
gdb/NEWS
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/skip.c
gdb/symtab.c
gdb/symtab.h
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/skip-solib.exp
gdb/testsuite/gdb.base/skip.c
gdb/testsuite/gdb.base/skip.exp
gdb/testsuite/gdb.base/skip1.c
gdb/testsuite/gdb.perf/skip-command.cc [new file with mode: 0644]
gdb/testsuite/gdb.perf/skip-command.exp [new file with mode: 0644]
gdb/testsuite/gdb.perf/skip-command.py [new file with mode: 0644]
gdb/utils.c
gdb/utils.h