PR python/18938: source -s foo.py with foo.py a symlink to foo.notpy fails
gdb/ChangeLog: PR python/18938 * cli/cli-cmds (source_script_fron_sctream): New arg file_to_open. All callers updated. gdb/testsuite/ChangeLog: * gdb.python/python.exp: Add test for symlink from .py file to .notpy file.
This commit is contained in:
parent
372405a5e8
commit
1a70ae976b
4 changed files with 35 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-10-26 Doug Evans <dje@google.com>
|
||||
|
||||
PR python/18938
|
||||
* cli/cli-cmds (source_script_fron_sctream): New arg file_to_open.
|
||||
All callers updated.
|
||||
|
||||
2015-10-26 Doug Evans <dje@google.com>
|
||||
|
||||
* psymtab.c (struct dump_psymtab_addrmap_data): Define.
|
||||
|
|
|
@ -538,10 +538,16 @@ find_and_open_script (const char *script_file, int search_path,
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* Load script FILE, which has already been opened as STREAM. */
|
||||
/* Load script FILE, which has already been opened as STREAM.
|
||||
FILE_TO_OPEN is the form of FILE to use if one needs to open the file.
|
||||
This is provided as FILE may have been found via the source search path.
|
||||
An important thing to note here is that FILE may be a symlink to a file
|
||||
with a different or non-existing suffix, and thus one cannot infer the
|
||||
extension language from FILE_TO_OPEN. */
|
||||
|
||||
static void
|
||||
source_script_from_stream (FILE *stream, const char *file)
|
||||
source_script_from_stream (FILE *stream, const char *file,
|
||||
const char *file_to_open)
|
||||
{
|
||||
if (script_ext_mode != script_ext_off)
|
||||
{
|
||||
|
@ -556,7 +562,7 @@ source_script_from_stream (FILE *stream, const char *file)
|
|||
= ext_lang_script_sourcer (extlang);
|
||||
|
||||
gdb_assert (sourcer != NULL);
|
||||
sourcer (extlang, stream, file);
|
||||
sourcer (extlang, stream, file_to_open);
|
||||
return;
|
||||
}
|
||||
else if (script_ext_mode == script_ext_soft)
|
||||
|
@ -609,7 +615,7 @@ source_script_with_search (const char *file, int from_tty, int search_path)
|
|||
anyway so that error messages show the actual file used. But only do
|
||||
this if we (may have) used search_path, as printing the full path in
|
||||
errors for the non-search case can be more noise than signal. */
|
||||
source_script_from_stream (stream, search_path ? full_path : file);
|
||||
source_script_from_stream (stream, file, search_path ? full_path : file);
|
||||
do_cleanups (old_cleanups);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2015-10-26 Doug Evans <dje@google.com>
|
||||
|
||||
PR python/18938
|
||||
* gdb.python/python.exp: Add test for symlink from .py file to .notpy
|
||||
file.
|
||||
|
||||
2015-10-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.compile/compile.exp (compile code globalvar): Update expectation
|
||||
|
|
|
@ -96,6 +96,19 @@ gdb_test "source $remote_source2_py" "yes" "source source2.py"
|
|||
|
||||
gdb_test "source -s source2.py" "yes" "source -s source2.py"
|
||||
|
||||
set remote_source2_symlink_notpy \
|
||||
[gdb_remote_download host ${srcdir}/${subdir}/source2.py \
|
||||
[standard_output_file "source2-symlink.notpy"]]
|
||||
set remote_source2_symlink_py [standard_output_file "source2-symlink.py"]
|
||||
remote_file host delete $remote_source2_symlink_py
|
||||
set status [remote_exec host "ln -sf $remote_source2_symlink_notpy $remote_source2_symlink_py"]
|
||||
set test "source -s source2-symlink.py"
|
||||
if {[lindex $status 0] == 0} {
|
||||
gdb_test "source -s $remote_source2_symlink_py" "yes" $test
|
||||
} else {
|
||||
unsupported "$test (host does not support symbolic links)"
|
||||
}
|
||||
|
||||
gdb_test "python print (gdb.current_objfile())" "None"
|
||||
gdb_test "python print (gdb.objfiles())" "\\\[\\\]"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue