This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
break on a external source file
- From: costin_c <costin dot cosoveanu at gmail dot com>
- To: gdb at sourceware dot org
- Date: Sat, 22 Sep 2007 01:21:31 +0300
- Subject: 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.