This is the mail archive of the gdb@sourceware.org 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]

break on a external source file


How can I tell to gdb to put a breakpoint on a given line in C++
source file, located in directory situated other than current one ?

$cat -n main.cc
     1  #include <dir/print.h>
     2  int
     3  main(int argc, char **argv)
     4  {
     5      Print P(100);
     6      P.print();
     7      return 0;
     8  }
$ cat -n dir/print.h
     1  #ifndef PRINT_H
     2
     3  class Print
     4  {
     5      private:
     6          int val;
     7      public:
     8          Print(int v);
     9          void print();
    10  };
    11
    12  #endif
$ cat -n dir/print.cc
     1  #include <print.h>
     2  #include <iostream>
     3
     4  Print::Print(int v)
     5  {
     6      val=v+v;
     7  };
     8
     9  void Print::print()
    10  {
    11      std::cout<<val<<std::endl;
    12  }

g++  -g  -I. -Idir dir/print.cc  main.cc -o print

gdb print
(gdb) break dir/print.cc:6
Breakpoint 1 at 0x8048637: file dir/print.cc, line 6.
(gdb) break main.cc:6
Breakpoint 2 at 0x804871c: file main.cc, line 6.
(gdb)
(gdb) info break
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x08048637 in Print at dir/print.cc:6
2   breakpoint     keep y   0x0804871c in main at main.cc:6
        breakpoint already hit 1 time
(gdb) run

Starting program: /home/user/print
Failed to read a valid object file image from memory.

Breakpoint 2, main () at main.cc:6
6           P.print();
(gdb) cont
Continuing.
200

Program exited normally.


In dir/print.cc:6 program is not interrupted by break, only at
breakpoint from main.cc:6.


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