Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* windows gdb.exe, setting breakpoints before debugging cause extremely slow loading
@ 2010-07-21 13:57 asmwarrior
  2010-07-22  0:34 ` asmwarrior
  0 siblings, 1 reply; 2+ messages in thread
From: asmwarrior @ 2010-07-21 13:57 UTC (permalink / raw)
  To: gdb

  Hi, all, I'm a windows gdb user, I have used both official MinGW 
gdb.exe and gdb.exe build myself.

I found that when I set a breakpoint before loading or after loading has 
much different result.
I use GDB.exe under Codeblocks, here is the debugger log when I try to 
debug something:
----------------------------------------------------------------------------
Situation works badly:

I just set breakpoint before I start "run" the debugee

 >>>>>>cb_gdb:
 > break 
"E:/code/cb/cc_branch/src/plugins/codecompletion/parser/parserthread.cpp:471"
No source file named 
E:/code/cb/cc_branch/src/plugins/codecompletion/parser/parserthread.cpp.
Breakpoint 1 
("E:/code/cb/cc_branch/src/plugins/codecompletion/parser/parserthread.cpp:471) 
pending.
 >>>>>>cb_gdb:
 > run

Now, it will take about 1 and a half minutes to start the debugee.

----------------------------------------------------------------------------
But If I do *not* set any breakpoint before running, then ,the loading 
stage is quite fast(about 10 second), after that I can still set 
breakpoint and all the breakpoint works fine.

Not only me find the problem, see the message posted in Codeblocks forum 
by One of Codeblocks developers Pecan:
http://forums.codeblocks.org/index.php/topic,12951.msg87332.html#msg87332

Does this a gdb bug?

Thanks

asmwarrior(ollydbg from codeblocks forum)


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: windows gdb.exe, setting breakpoints before debugging cause extremely slow loading
  2010-07-21 13:57 windows gdb.exe, setting breakpoints before debugging cause extremely slow loading asmwarrior
@ 2010-07-22  0:34 ` asmwarrior
  0 siblings, 0 replies; 2+ messages in thread
From: asmwarrior @ 2010-07-22  0:34 UTC (permalink / raw)
  To: asmwarrior; +Cc: gdb

  On 3:59, asmwarrior wrote:
>  Hi, all, I'm a windows gdb user, I have used both official MinGW 
> gdb.exe and gdb.exe build myself.
>
> I found that when I set a breakpoint before loading or after loading 
> has much different result.
> I use GDB.exe under Codeblocks, here is the debugger log when I try to 
> debug something:
> ---------------------------------------------------------------------------- 
>
> Situation works badly:
>
> I just set breakpoint before I start "run" the debugee
>
> >>>>>>cb_gdb:
> > break 
> "E:/code/cb/cc_branch/src/plugins/codecompletion/parser/parserthread.cpp:471"
> No source file named 
> E:/code/cb/cc_branch/src/plugins/codecompletion/parser/parserthread.cpp.
> Breakpoint 1 
> ("E:/code/cb/cc_branch/src/plugins/codecompletion/parser/parserthread.cpp:471) 
> pending.
> >>>>>>cb_gdb:
> > run
>
> Now, it will take about 1 and a half minutes to start the debugee.
>
> ---------------------------------------------------------------------------- 
>
> But If I do *not* set any breakpoint before running, then ,the loading 
> stage is quite fast(about 10 second), after that I can still set 
> breakpoint and all the breakpoint works fine.
>
> Not only me find the problem, see the message posted in Codeblocks 
> forum by One of Codeblocks developers Pecan:
> http://forums.codeblocks.org/index.php/topic,12951.msg87332.html#msg87332
>
> Does this a gdb bug?
>
> Thanks
>
> asmwarrior(ollydbg from codeblocks forum)
>


I personally think there is something wrong with "pending breakpoint" 
when we load a shared dll library.

As my initial guess, When after loading some new shared libraries, gdb 
need to check if the pending breakpoint can be set to the new libraries. 
if Yes, then the these breakpoint can translated from "pending 
breakpoint" to "real breakpoint".

return to my problem:
I guess there are some recursive search algorithm for pending 
breakpoints after some new shared library debug information is loaded.

Can some one give me a direction that how does gdb treat with "pending 
breakpoint" after loading some new shared libraries?
I have read the gdb source "breakpoint.c" there:

struct breakpoint *b

if b->loc is NULL, which means it is a pending breakpoint. So, where and 
when will be this pointer member filled.

Thanks

asmwarrior





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-07-22  0:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-21 13:57 windows gdb.exe, setting breakpoints before debugging cause extremely slow loading asmwarrior
2010-07-22  0:34 ` asmwarrior

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox