Re: problems while debugger is attached

"Carsten Orthbandt" <[email protected]> Mon, 24 Jul 2006 08:27:48 +0200
Newsgroups gmane.games.devel.general
Message-ID <[email protected]>
In VS.Net, you simply attach the debugger to the hanging
process AFTER it went into dead-lock. Then you open the
threads window and see where all your threads are. It
should be easy to find the one that's locked and get a
callstack. Especially if you have source for the system
lib in question.

Carsten Orthbandt
Founder + Development Director
SEK SpieleEntwicklungsKombinat GmbH
http://www.sek-ost.de

Wenn ich Visionen habe, gehe ich zum Arzt. - Helmut Schmidt
  

> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] 
> On Behalf Of Andras Balogh
> Sent: Monday, July 24, 2006 1:09 AM
> To: [email protected]
> Subject: Re: [GD-General] problems while debugger is attached
> 
> The function call in question is a call into a 3rd party 
> library (ECW). I  
> have the sources and the .pdb, so I can step inside, and see 
> what's going  
> on, but of course, when I do that, it works fine.
> 
> Hmm, this gave me an idea: When I'm running the program without  
> breakpoints, I can still stop the execution of the process at 
> any time.  
> Now, Is there any way I could tell what the current 
> instrucion pointer is,  
> for each of my threads? That way, I could at least see, where 
> exactly the  
> execution is stalled.
> 
> Thanks,
> 
> 
> Andras
> 
> 
> On Sun, 23 Jul 2006 14:18:10 -0600, Chris Chapman 
> <[email protected]>  
> wrote:
> 
> > I've had this many times when coding in a multi-threaded 
> environment.
> > What will be happening is the attachment of the debugger is 
> enough to
> > skew the timings of the function calls so that a race condition is
> > exposed.
> >
> > When you say 'blocks on a function call and never returns', what
> > function call are you talking about? A system call or one 
> of your own
> > functions? If its one of your own functions thats blocking, 
> its a bit
> > easier to debug, because you can introduce logging around 
> it. A system
> > call is a harder to diagnose - usually the sub-system the 
> system call
> > is dealing with has some internal blocking, but its harder to figure
> > out where the race condition is coming from.
> >
> > Before I started using test driven development for these things, I
> > could spend ages beating my head against weird behaviour like that.
> > The most effective solution I found for debugging strange race
> > conditions was to introduce sleeps of random and 
> significant duration
> > around the system, to exacerbate any problems which don't show up
> > unless locks are held for a long while. Combine that with logging
> > around lock acquisition/releases so you can see what was going on
> > immediately prior to the deadlock, without having to use 
> breakpoints.
> > Breakpoints don't help at all in these cases, because they screw up
> > the timing, and the nature of debuggers is often to suspend other
> > threads entirely when single-stepping through a thread - 
> often making
> > the problem disappear entirely.
> >
> > ChrisC
> >
> > On 23/07/06, Andras Balogh <[email protected]> wrote:
> >> I have a strange bug, where if I'm running the program without the
> >> debugger attached (CTRL-F5 in VS), the program would run 
> correctly both  
> >> in
> >> debug and release builds. But when I run the program with 
> F5, so the
> >> debugger is attached, then it blocks on a function call and never  
> >> returns.
> >> If I put a breakpoint before this call, and step through it, then
> >> everything seems to work fine, and the function returns as 
> expected..
> >>
> >> Could this be a deadlocking problem? Any ideas why 
> attaching a debugger
> >> makes any difference? And hints on how to debug this?
> >>
> >> Thanks,
> >>
> >>
> >>
> >> Andras
> >>
> >> 
> --------------------------------------------------------------
> -----------
> >> Take Surveys. Earn Cash. Influence the Future of IT
> >> Join SourceForge.net's Techsay panel and you'll get the 
> chance to share  
> >> your
> >> opinions on IT & business topics through brief surveys -- 
> and earn cash
> >> 
> http://www.techsay.com/default.php?page=join.php&p=sourceforge
&CID=DEVDEV
> >> _______________________________________________
> >> Gamedevlists-general mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/gamedevlists-general
> >> Archives:
> >> http://sourceforge.net/mailarchive/forum.php?forum_id=557
> >>
> >
> > 
> --------------------------------------------------------------
> -----------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net's Techsay panel and you'll get the 
> chance to share  
> > your
> > opinions on IT & business topics through brief surveys -- 
> and earn cash
> > 
> http://www.techsay.com/default.php?page=join.php&p=sourceforge
&CID=DEVDEV
> > _______________________________________________
> > Gamedevlists-general mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/gamedevlists-general
> > Archives:
> > http://sourceforge.net/mailarchive/forum.php?forum_id=557
> 
> --------------------------------------------------------------
> -----------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the 
> chance to share your
> opinions on IT & business topics through brief surveys -- and 
> earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge
&CID=DEVDEV
> _______________________________________________
> Gamedevlists-general mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/gamedevlists-general
> Archives:
> http://sourceforge.net/mailarchive/forum.php?forum_id=557
> 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Gamedevlists-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gamedevlists-general
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_id=557