diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2018-04-26 16:21:34 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2021-09-27 11:31:35 +0100 |
commit | fde1a9a3ee8c95bb7bae6c764755bcbffdbb0308 (patch) | |
tree | 7a4913567f8c8ede1e6f43d11fa1f2183fe386b1 /gdb/testsuite | |
parent | 5cf3b309489d1606ee0fb7e452f467d82fd1b765 (diff) | |
download | gdb-fde1a9a3ee8c95bb7bae6c764755bcbffdbb0308.zip gdb-fde1a9a3ee8c95bb7bae6c764755bcbffdbb0308.tar.gz gdb-fde1a9a3ee8c95bb7bae6c764755bcbffdbb0308.tar.bz2 |
gdb: add setting to disable reading source code files
In some situations it is possible that a user might not want GDB to
try and access source code files, for example, the source code might
be stored on a slow to access network file system.
It is almost certainly possible that using some combination of 'set
directories' and/or 'set substitute-path' a user can trick GDB into
being unable to find the source files, but this feels like a rather
crude way to solve the problem.
In this commit a new option is add that stops GDB from opening and
reading the source files. A user can run with source code reading
disabled if this is required, then re-enable later if they decide
that they now want to view the source code.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/gdb.base/source-open.c | 25 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/source-open.exp | 44 |
2 files changed, 69 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/source-open.c b/gdb/testsuite/gdb.base/source-open.c new file mode 100644 index 0000000..1fb5edb --- /dev/null +++ b/gdb/testsuite/gdb.base/source-open.c @@ -0,0 +1,25 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2021 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <stdio.h> + +int +main (int argc, char* argv[]) +{ + printf ("source code line."); + return 0; +} diff --git a/gdb/testsuite/gdb.base/source-open.exp b/gdb/testsuite/gdb.base/source-open.exp new file mode 100644 index 0000000..eb80142 --- /dev/null +++ b/gdb/testsuite/gdb.base/source-open.exp @@ -0,0 +1,44 @@ +# Copyright 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Test the 'set source open on|off' command. + +standard_testfile + +if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} { + return -1 +} + +gdb_test "show source open" "Source opening is \"on\"\\." \ + "source opening is initially on" +gdb_test_no_output "set listsize 1" +gdb_test_no_output "set source open on" +gdb_test "list 18" "18\t#include <stdio.h>" "source reading on" + +# File opening is turned off therefore source lines are not printed. +gdb_test_no_output "set source open off" +gdb_test "show source open" "Source opening is \"off\"\\." \ + "source opening is now off" +gdb_test "list 18" "18\tin .*/${srcfile}" "source reading off" + +gdb_test "forward-search main" "source code access disabled" +gdb_test "reverse-search main" "source code access disabled" + +# And finally, turn source code reading back on. +gdb_test_no_output "set source open on" \ + "turn source reading back on" +gdb_test "show source open" "Source opening is \"on\"\\." \ + "source opening is on again" +gdb_test "list 18" "18\t#include <stdio.h>" "source reading on again" |