public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug python/18938] New: source -s foo.py with foo.py a symlink to foo.notpy fails
@ 2015-09-08 21:19 dje at google dot com
  2015-09-08 21:22 ` [Bug python/18938] " dje at google dot com
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: dje at google dot com @ 2015-09-08 21:19 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18938

            Bug ID: 18938
           Summary: source -s foo.py with foo.py a symlink to foo.notpy
                    fails
           Product: gdb
           Version: unknown
            Status: NEW
          Severity: normal
          Priority: P2
         Component: python
          Assignee: unassigned at sourceware dot org
          Reporter: dje at google dot com
  Target Milestone: ---

If one has foo.py as a symlink to foo.notpy, then "source -s foo.py" will fail
because gdb will try to interpret the extension language from the realpath'd
form of the file.

patch + testcase to follow.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug python/18938] source -s foo.py with foo.py a symlink to foo.notpy fails
  2015-09-08 21:19 [Bug python/18938] New: source -s foo.py with foo.py a symlink to foo.notpy fails dje at google dot com
@ 2015-09-08 21:22 ` dje at google dot com
  2015-09-08 21:26 ` dje at google dot com
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: dje at google dot com @ 2015-09-08 21:22 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18938

--- Comment #1 from dje at google dot com ---
Created attachment 8592
  --> https://sourceware.org/bugzilla/attachment.cgi?id=8592&action=edit
patch + testcase

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug python/18938] source -s foo.py with foo.py a symlink to foo.notpy fails
  2015-09-08 21:19 [Bug python/18938] New: source -s foo.py with foo.py a symlink to foo.notpy fails dje at google dot com
  2015-09-08 21:22 ` [Bug python/18938] " dje at google dot com
@ 2015-09-08 21:26 ` dje at google dot com
  2015-10-26 21:35 ` cvs-commit at gcc dot gnu.org
  2015-10-26 22:24 ` dje at google dot com
  3 siblings, 0 replies; 5+ messages in thread
From: dje at google dot com @ 2015-09-08 21:26 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18938

--- Comment #2 from dje at google dot com ---
Comment on attachment 8592
  --> https://sourceware.org/bugzilla/attachment.cgi?id=8592
patch + testcase

>==== gdb/gdb-7.9.x/gdb/cli/cli-cmds.c#2 - gdb/gdb-7.9.x/gdb/cli/cli-cmds.c ====
>--- gdb/cli/cli-cmds.c	2015-02-23 13:07:25.000000000 -0800
>+++ gdb/gdb-7.9.x/gdb/cli/cli-cmds.c	2015-09-08 13:55:50.187471783 -0700
>@@ -537,10 +537,16 @@
>   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)
>     {
>@@ -555,7 +561,7 @@
> 		= 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)
>@@ -608,7 +614,7 @@
>      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);
> }
> 
>==== gdb/testsuite/gdb.python/python.exp#1 - gdb/gdb-7.9.x/gdb/testsuite/gdb.python/python.exp ====
>--- gdb/gdb-7.9.x/gdb/testsuite/gdb.python/python.exp	2015-01-14 16:43:56.000000000 -0800
>+++ gdb/gdb-7.9.x/gdb/testsuite/gdb.python/python.exp	2015-09-08 14:19:04.246904083 -0700
>@@ -96,6 +96,19 @@
> 
> 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())" "\\\[\\\]"
>

-- 
You are receiving this mail because:
You are on the CC list for the bug.
>From gdb-prs-return-18566-listarch-gdb-prs=sources.redhat.com@sourceware.org Tue Sep 08 21:31:33 2015
Return-Path: <gdb-prs-return-18566-listarch-gdb-prs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-gdb-prs@sources.redhat.com
Received: (qmail 7788 invoked by alias); 8 Sep 2015 21:31:33 -0000
Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <gdb-prs.sourceware.org>
List-Subscribe: <mailto:gdb-prs-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/gdb-prs/>
List-Post: <mailto:gdb-prs@sourceware.org>
List-Help: <mailto:gdb-prs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: gdb-prs-owner@sourceware.org
Delivered-To: mailing list gdb-prs@sourceware.org
Received: (qmail 7240 invoked by uid 48); 8 Sep 2015 21:31:32 -0000
From: "bvstraalen at lbl dot gov" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug c++/18939] New: Could not find the frame base
Date: Tue, 08 Sep 2015 21:31:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: new
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gdb
X-Bugzilla-Component: c++
X-Bugzilla-Version: 7.10
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: bvstraalen at lbl dot gov
X-Bugzilla-Status: NEW
X-Bugzilla-Resolution:
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: unassigned at sourceware dot org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status
 bug_severity priority component assigned_to reporter target_milestone
Message-ID: <bug-18939-4717@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-q3/txt/msg00270.txt.bz2
Content-length: 6060

https://sourceware.org/bugzilla/show_bug.cgi?id\x18939

            Bug ID: 18939
           Summary: Could not find the frame base
           Product: gdb
           Version: 7.10
            Status: NEW
          Severity: normal
          Priority: P2
         Component: c++
          Assignee: unassigned at sourceware dot org
          Reporter: bvstraalen at lbl dot gov
  Target Milestone: ---

building with g++ 5.2 and using gdb 7.10 on OSX Macbook.

  It is NOT a gfortran problem.  I get the same error in pure C++ programs as
well.


I don't think it is an error in g++, since I can see my objects fine with other
debuggers.

It might be a gdb configure error though.  Symptoms:

gdb testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex
GNU gdb (GDB) 7.10
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin10".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex...done.
(gdb) break testPoisson
Breakpoint 1 at 0x100001419: file testPoisson.cpp, line 101.
(gdb) run
Starting program:
/Users/bvs/Chombo/lib/test/MLC/testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex
warning:
`/BinaryCache/coreTLS/coreTLS-35.40.1~1/Objects/coretls.build/coretls.build/Objects-normal/x86_64/system_coretls_vers.o':
can't open to read symbols: No such file or directory.
warning: Could not open OSO archive file
"/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_ciphersuites.a"
warning: Could not open OSO archive file
"/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a"
warning: Could not open OSO archive file
"/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a"
warning: Could not open OSO archive file
"/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_stream_parser.a"
      Beginning testPoisson ...

Breakpoint 1, testPoisson (
    a_dx=<error reading variable: Could not find the frame base for
"testPoisson(RealVect const&, int, int, double (*)(RealVect const&), double
(*)(RealVect const&))".>,
    low=<error reading variable: Could not find the frame base for
"testPoisson(RealVect const&, int, int, double (*)(RealVect const&), double
(*)(RealVect const&))".>,
    high=<error reading variable: Could not find the frame base for
"testPoisson(RealVect const&, int, int, double (*)(RealVect const&), double
(*)(RealVect const&))".>,
    input=<error reading variable: Could not find the frame base for
"testPoisson(RealVect const&, int, int, double (*)(RealVect const&), double
(*)(RealVect const&))".>,
    exactLap=<error reading variable: Could not find the frame base for
"testPoisson(RealVect const&, int, int, double (*)(RealVect const&), double
(*)(RealVect const&))".>) at testPoisson.cpp:101
101       RealVect dx=a_dx;
(gdb) n
103       unsigned int status = 0;
(gdb) p dx
Could not find the frame base for "testPoisson(RealVect const&, int, int,
double (*)(RealVect const&), double (*)(RealVect const&))".
(gdb)



The same debug sequence using lldb gives the following:

lldb testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex
(lldb) target create "testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex"
Current executable set to 'testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex'
(x86_64).
(lldb) breakpoint set -name testPoisson
Breakpoint 1: where testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex`testPoisson(RealVect const&, int,
int, double (*)(RealVect const&), double (*)(RealVect const&)) + 47 at
testPoisson.cpp:101, address = 0x0000000100001419
(lldb) run
Process 10401 launched:
'/Users/bvs/Chombo/lib/test/MLC/testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex'
(x86_64)
      Beginning testPoisson ...
Process 10401 stopped
* thread #1: tid = 0x85ee1, 0x0000000100001419
testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex`testPoisson(a_dx=0x00007fff5fbff510,
low=-20, high , input=0x00000001000030a2,
exactLap=0x0000000100002f07)(RealVect const&), double (*)(RealVect const&)) +
47 at testPoisson.cpp:101, queue = 'com.apple.main-thread', stop reason breakpoint 1.1
    frame #0: 0x0000000100001419
testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex`testPoisson(a_dx=0x00007fff5fbff510,
low=-20, high , input=0x00000001000030a2,
exactLap=0x0000000100002f07)(RealVect const&), double (*)(RealVect const&)) +
47 at testPoisson.cpp:101
-> 101    RealVect dx=a_dx;
   102    Real error[3];
   103    unsigned int status = 0;
   104    char phiF[]={"PHI0.hdf5"};
(lldb) n
Process 10401 stopped
* thread #1: tid = 0x85ee1, 0x0000000100001432
testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex`testPoisson(a_dx=0x00007fff5fbff510,
low=-20, high , input=0x00000001000030a2,
exactLap=0x0000000100002f07)(RealVect const&), double (*)(RealVect const&)) +
72 at testPoisson.cpp:103, queue = 'com.apple.main-thread', stop reason = step
over
    frame #0: 0x0000000100001432
testPoisson3d.Darwin.64.g++.gfortran.DEBUG.ex`testPoisson(a_dx=0x00007fff5fbff510,
low=-20, high , input=0x00000001000030a2,
exactLap=0x0000000100002f07)(RealVect const&), double (*)(RealVect const&)) +
72 at testPoisson.cpp:103
   101    RealVect dx=a_dx;
   102    Real error[3];
-> 103    unsigned int status = 0;
   104    char phiF[]={"PHI0.hdf5"};
   105    char exactF[]={"EXACT0.hdf5"};
   106    char fF[] ={"F0.hdf5"};
(lldb) p dx
(RealVect) $0 = {
  vect = ([0] = 0.23000000000000001, [1] = 0.23000000000000001, [2] 0.23000000000000001)
}
(lldb)

--
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug python/18938] source -s foo.py with foo.py a symlink to foo.notpy fails
  2015-09-08 21:19 [Bug python/18938] New: source -s foo.py with foo.py a symlink to foo.notpy fails dje at google dot com
  2015-09-08 21:22 ` [Bug python/18938] " dje at google dot com
  2015-09-08 21:26 ` dje at google dot com
@ 2015-10-26 21:35 ` cvs-commit at gcc dot gnu.org
  2015-10-26 22:24 ` dje at google dot com
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2015-10-26 21:35 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18938

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Doug Evans <devans@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1a70ae976b673f7762f14734785b34fc5ba92eae

commit 1a70ae976b673f7762f14734785b34fc5ba92eae
Author: Doug Evans <dje@google.com>
Date:   Mon Oct 26 14:33:19 2015 -0700

    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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug python/18938] source -s foo.py with foo.py a symlink to foo.notpy fails
  2015-09-08 21:19 [Bug python/18938] New: source -s foo.py with foo.py a symlink to foo.notpy fails dje at google dot com
                   ` (2 preceding siblings ...)
  2015-10-26 21:35 ` cvs-commit at gcc dot gnu.org
@ 2015-10-26 22:24 ` dje at google dot com
  3 siblings, 0 replies; 5+ messages in thread
From: dje at google dot com @ 2015-10-26 22:24 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18938

dje at google dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from dje at google dot com ---
patch applied

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-26 22:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-08 21:19 [Bug python/18938] New: source -s foo.py with foo.py a symlink to foo.notpy fails dje at google dot com
2015-09-08 21:22 ` [Bug python/18938] " dje at google dot com
2015-09-08 21:26 ` dje at google dot com
2015-10-26 21:35 ` cvs-commit at gcc dot gnu.org
2015-10-26 22:24 ` dje at google dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).