This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Setting breakpoint in src file located in different directory


On Tue, Apr 12, 2005 at 01:59:46PM +0200, Joakim Hove wrote:
>  o I have a directory ~/libdos/src/ which contains many different
>    source files. These files are compiled and linked to a shared
>    library.

That's the key.  Shared library.

>  1: break /HOME/user/Apps/src/App.c:450
> 
>     This corresponds to a situation where both the src file "App.c"
>     and the executable App.x are located in the same directory,
>     altough the execution is invoked from another directory. This
>     works in 6.3 and did not work in 6.1

Good.  This is the bug which I thought was fixed.

>  2: break /HOME/user/libdos/src/ehist.c:450
> 
>     This is an attempt to set breakpoints in one of the files which
>     are located in a "third" directory, i.e. distrinct from both the
>     directory containing the executable and the execution
>     directory. This fails with:
> 
>     No source file named /home/fimm/cmu/hove/libdos/src/ehist.c.
> 
> 
>  3: If you to try set the breakpoint indicated in above manually from
>     within gdb I get the following behaviour:
> 
>     bash% ~/bin/gdb ../App.x
>     <....>
>     (gdb) break /HOME/user/libdos/src/ehist.c:450
> 
>         No source file named /home/fimm/cmu/hove/libdos/src/ehist.c.
>         Make breakpoint pending on future shared library load? (y or [n])
> 
>     Well, answering yes to this and then starting the program with:
> 
>     (gdb) run arg1 arg2 ... 
>     Breakpoint 4 at 0x2a95673dd0: file ehist.c, line 450.
>     Pending breakpoint "/home/fimm/cmu/hove/libdos/src/ehist.c:450"
>     resolved
> 
>     The pending breakpoint is immediately resolved, and everything
>     works correctly.

See the [n]?  The default answer to this question is no, because
historically pending breakpoints were not available; this is the most
consistent interface.  If you want this to work from .gdbinit, see
"help set breakpoint pending".

The breakpoint can't be set yet, because the shared library has not yet
been loaded.


-- 
Daniel Jacobowitz
CodeSourcery, LLC


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]