Current version

v1.10.4 (stable)

Navigation

Main page
Archived news
Downloads
Documentation
   Capture
   Compiling
   Processing
   Crashes
Features
Filters
Plugin SDK
Knowledge base
Donate
Contact info
Forum
 
Other projects
   Altirra

Search

Archives

01 Dec - 31 Dec 2013
01 Oct - 31 Oct 2013
01 Aug - 31 Aug 2013
01 May - 31 May 2013
01 Mar - 31 Mar 2013
01 Feb - 29 Feb 2013
01 Dec - 31 Dec 2012
01 Nov - 30 Nov 2012
01 Oct - 31 Oct 2012
01 Sep - 30 Sep 2012
01 Aug - 31 Aug 2012
01 June - 30 June 2012
01 May - 31 May 2012
01 Apr - 30 Apr 2012
01 Dec - 31 Dec 2011
01 Nov - 30 Nov 2011
01 Oct - 31 Oct 2011
01 Sep - 30 Sep 2011
01 Aug - 31 Aug 2011
01 Jul - 31 Jul 2011
01 June - 30 June 2011
01 May - 31 May 2011
01 Apr - 30 Apr 2011
01 Mar - 31 Mar 2011
01 Feb - 29 Feb 2011
01 Jan - 31 Jan 2011
01 Dec - 31 Dec 2010
01 Nov - 30 Nov 2010
01 Oct - 31 Oct 2010
01 Sep - 30 Sep 2010
01 Aug - 31 Aug 2010
01 Jul - 31 Jul 2010
01 June - 30 June 2010
01 May - 31 May 2010
01 Apr - 30 Apr 2010
01 Mar - 31 Mar 2010
01 Feb - 29 Feb 2010
01 Jan - 31 Jan 2010
01 Dec - 31 Dec 2009
01 Nov - 30 Nov 2009
01 Oct - 31 Oct 2009
01 Sep - 30 Sep 2009
01 Aug - 31 Aug 2009
01 Jul - 31 Jul 2009
01 June - 30 June 2009
01 May - 31 May 2009
01 Apr - 30 Apr 2009
01 Mar - 31 Mar 2009
01 Feb - 29 Feb 2009
01 Jan - 31 Jan 2009
01 Dec - 31 Dec 2008
01 Nov - 30 Nov 2008
01 Oct - 31 Oct 2008
01 Sep - 30 Sep 2008
01 Aug - 31 Aug 2008
01 Jul - 31 Jul 2008
01 June - 30 June 2008
01 May - 31 May 2008
01 Apr - 30 Apr 2008
01 Mar - 31 Mar 2008
01 Feb - 29 Feb 2008
01 Jan - 31 Jan 2008
01 Dec - 31 Dec 2007
01 Nov - 30 Nov 2007
01 Oct - 31 Oct 2007
01 Sep - 30 Sep 2007
01 Aug - 31 Aug 2007
01 Jul - 31 Jul 2007
01 June - 30 June 2007
01 May - 31 May 2007
01 Apr - 30 Apr 2007
01 Mar - 31 Mar 2007
01 Feb - 29 Feb 2007
01 Jan - 31 Jan 2007
01 Dec - 31 Dec 2006
01 Nov - 30 Nov 2006
01 Oct - 31 Oct 2006
01 Sep - 30 Sep 2006
01 Aug - 31 Aug 2006
01 Jul - 31 Jul 2006
01 June - 30 June 2006
01 May - 31 May 2006
01 Apr - 30 Apr 2006
01 Mar - 31 Mar 2006
01 Feb - 29 Feb 2006
01 Jan - 31 Jan 2006
01 Dec - 31 Dec 2005
01 Nov - 30 Nov 2005
01 Oct - 31 Oct 2005
01 Sep - 30 Sep 2005
01 Aug - 31 Aug 2005
01 Jul - 31 Jul 2005
01 June - 30 June 2005
01 May - 31 May 2005
01 Apr - 30 Apr 2005
01 Mar - 31 Mar 2005
01 Feb - 29 Feb 2005
01 Jan - 31 Jan 2005
01 Dec - 31 Dec 2004
01 Nov - 30 Nov 2004
01 Oct - 31 Oct 2004
01 Sep - 30 Sep 2004
01 Aug - 31 Aug 2004

Stuff

Powered by Pivot  
XML: RSS feed 
XML: Atom feed 

§ You forgot to mention a small detail

Hmm, looks like someone says my program crashed, and sent me the minidump. Excellent! Let's load it in WinDbg, my favorite tool for post-mortem debugging (since it offers more control than Visual Studio):

(8.9): Unknown exception - code 80000101 (first/second chance not available)
eax=00000000 ebx=00004120 ecx=00004120 edx=00000006 esi=f75d5079 edi=f75f4ff4
eip=f779d430 esp=0033e818 ebp=0033e830 iopl=0         nv up ei ng nz ac pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0063  gs=006b             efl=00200296

I don't recognize that exception code. The PC value is a bit weird, too -- that's in kernel address space for 32-bit Windows, even with /3GB. Well, let's set up symbols and dump the stack.

0:003> .sympath e:alt17
Symbol search path is: e:alt17
0:003> .symfix+ f:symbols
0:003> .reload
.................................
0:003> k
*** WARNING: Unable to verify timestamp for ntdll.dll
*** ERROR: Module load completed but symbols could not be loaded for ntdll.dll

That's weird, the symbols for this system's ntdll.dll aren't on the Microsoft public symbol server? What's loaded on this system?

0:003> lm
start    end        module name
00400000 00b0b000   Altirra    (private pdb symbols)  e:alt17Altirra.pdb
7c860000 7c869000   psapi      (deferred)            
7c870000 7c8c3000   dbghelp    (deferred)            
7cdd0000 7cf02000   wined3d  T (no symbols)          
7cf50000 7cf7f000   d3d9     T (no symbols)          
7cf90000 7cfb9000   dinput     (deferred)            
7cfd0000 7d0a4000   oleaut32   (deferred)            
7d0b0000 7d100000   riched20   (deferred)            
7d230000 7d24a000   dinput8    (deferred)            
7d250000 7d25e000   riched32   (deferred)            
7d260000 7d274000   midimap    (deferred)            
7d280000 7d29c000   msacm32_7d280000   (deferred)            
7dda0000 7ddb1000   msacm32    (deferred)            
7ddc0000 7ddcf000   winepulse   (deferred)            
7ddd0000 7ddea000   spoolss    (deferred)            
7df50000 7df61000   localspl   (deferred)            
7dfa0000 7dfcf000   uxtheme    (deferred)            
7e000000 7e019000   imm32      (deferred)            
7e190000 7e227000   winex11    (deferred)            
7e2f0000 7e381000   winmm      (deferred)            
7e390000 7e3f8000   rpcrt4     (deferred)            
7e410000 7e4fa000   ole32      (deferred)            
7e500000 7e533000   winspool   (deferred)            
7e540000 7e622000   comctl32   (deferred)            
7e630000 7e687000   shlwapi    (deferred)            
7e6a0000 7e875000   shell32    (deferred)            
7e880000 7e937000   comdlg32   (deferred)            
7e940000 7e995000   advapi32   (deferred)            
7e9a0000 7ea22000   gdi32      (deferred)            
7ea40000 7eb58000   user32     (deferred)            
7ed70000 7eedb000   KERNEL32   (deferred)            
7ef30000 7ef43000   version    (deferred)            
7ef60000 7f000000   ntdll    T (no symbols)          

Ummm... okaaay. It looks like the user forgot to tell me a small detail, namely that he wasn't actually running my Windows-based program under Windows... but actually under Linux using WINE. Which means there are a whole new class of issues that could be involved, the least of which being that WINE's D3D9 implementation has some known issues related to D3D<->OpenGL translation.

Fortunately for this particular user, it turns out that in this case the issue is actually likely to be on my end and related to a known problem in VirtualDub's D3D9 rendering code that I already fixed. However, if you're going to run a program under an environment that it was definitely not intended to run under and which may have its own problems (or is likely to have problems!), you need to mention your non-standard configuration to whoever's looking at your problem.

Comments

Comments posted:


I don't trust users to give all of the "obvious" information for a crash report, so I try to include it all automatically in the crash dump output (originally based on yours, if you recall). Windows version, video and sound driver version (as far as they can be detected), OpenGL/D3D details, etc. and any important runtime logs are dropped into the crashinfo--the fewer things I need to ask the reporter about, the more likely I am to have the info I need.

Another benefit of using preprocessed crashinfo files rather than minidumps: if they want, users can tell exactly what information is included in the file, whereas minidumps are much more opaque. That info could probably be saved to a blob in a minidump by a crash handler, too, though.

Glenn Maynard - 16 12 10 - 05:05


You're so gonna hate me for this :)

"... but WINE has exposed bugs in my code before..."

So, actually, s/he was doing you a favor by running it on wine :)

Best regards
Maz

Mads - 16 12 10 - 22:17


@Madz

The complaint wasn't that the user was running VD under wine, but that the user didn't mention that he was running VD under wine.

tzj - 19 12 10 - 04:15


Correct. It turns out in this case, btw, that the trigger for the exception may have been an assert() in the i965 graphics driver, based on the assert message that got dumped to stdout. I find leaving asserts() in production code to be bad form, but that's just me.

Phaeron - 19 12 10 - 09:41

Comment form


Please keep comments on-topic for this entry. If you have unrelated comments about VirtualDub, the forum is a better place to post them.
Name:  
Remember personal info?

Email (Optional):
Your email address is only revealed to the blog owner and is not shown to the public.
URL (Optional):
Comment: /

An authentication dialog may appear when you click Post Comment. Simply type in "post" as the user and "now" as the password. I have had to do this to stop automated comment spam.



Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.