Big speed differences when setting breakpoints

Markus Grunwald markus.grunwald@gmx.de
Mon Aug 9 06:30:00 GMT 2010


Hello,

Can somebody explain these differences?

> (gdb) maint time 1
> (gdb) break
/home/gru/projects/vxp/branches/branch-0-2-30-X/Dafit_Code/dafit2/dafit2/CPTApplication.cpp:370
> Breakpoint 1 at 0x8161436: file
/home/gru/projects/vxp/branches/branch-0-2-30-X/Dafit_Code/dafit2/dafit2/CPTApplication.cpp,
line 370.
> Command execution time: 5.840365

compare it to this:

> (gdb) break CPTApplication.cpp:370
> Breakpoint 1 at 0x8161436: file
/home/gru/projects/vxp/branches/branch-0-2-30-X/Dafit_Code/dafit2/dafit2/CPTApplication.cpp,
line 370.
> Command execution time: 0.708044

Setting a breakpoint with the complete path is awfully slow, while it is
ok when you give only the filename.  /home is on an nfs mount where disk
access is expensive, but even without nfs, the difference is quite big. I
wrote a little benchmark and straced the "open" calls:

% strace -eopen -o /tmp/gdb2.strace gdb dafit_x86.bin -x
~/gdb-benchmark-only-names.gdb
% strace -eopen -o /tmp/gdb.strace gdb dafit_x86.bin -x ~/gdb-benchmark.gdb

 % wc -l /tmp/gdb.strace /tmp/gdb2.strace
  88350 /tmp/gdb.strace
  20 /tmp/gdb2.strace

What? 80000 calls to "open" if I pass the whole path and only 20 otherwise?

BTW: This is debian stables gdb:
% dpkg -l gdb
||/ Name                                Version                           
 Description
+++-===================================-===================================-======================================================================================
ii  gdb                                 6.8-3                             
 The GNU Debugger

I would be happy if somebody could explain this behaviour....

Thanks,
Markus Grunwald



-- 
Markus Grunwald                        http://the-grue.de

Registered Linux User Nr 101577
http://counter.li.org




More information about the Gdb mailing list