Re: problems while debugger is attached

"Andras Balogh" <[email protected]> Sun, 23 Jul 2006 17:08:46 -0600
Newsgroups gmane.games.devel.general
Message-ID <op.tc5zwwiyik7roz@serenity>
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