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


Thanks again,

> Yes, it is a bug.

OK, very good I thought the behaviour I tried to achieve should be
valid.

> It will build and run fine from $HOME.

Well, that was indeed a no-brainer. I have now installed and run
version 6.3, however it does still not work (completely). Let me
describe in somewhat more detail how my configuration is:

 o I have a directory ~/libdos/src/ which contains many different
   source files. These files are compiled and linked to a shared
   library.

 o I have a directory ~/Apps/src which contains the src file "App.c"
   for this particular application. This source is linked with the
   shared library listed above to make an executable. The executable
   "App.x" is left in this directory. The program runs as it should
   (i.e. there are no problems loading the shared library.)

 o I have a subdirectory ~/Apps/src/run from which the application is
   run. So, when starting the application I do

   bash% cd ~/Apps/src/run
   bash% ../App.x
  
   And this works fine.

 o When trying to debug the application I invoke gdb as:

   bash% ~/bin/gdb ../App.x


Regarding breakpoints from ./.gdbinit I get the following behaviour:

 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


 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.


It seems that there is lesser acceptance for pending breakpoints from
the init file than from interactive definition. However, I do provide 
exact coordinates in the init file, so that *should* in my opinion be
sufficient. 

Anyway - Thanks


Joakim


-- 
Joakim Hove
hove AT ift uib no                 /    
Tlf: +47 (55 5)8 27 90            /     Stabburveien 18		 
Fax: +47 (55 5)8 94 40           /      N-5231 Paradis		 
http://www.ift.uib.no/~hove/    /      	55 91 28 18 / 92 68 57 04


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