PDB and exceptioninfo - how to not get ?'s?
Moderator: Moderators
-
- DC++ Contributor
- Posts: 3212
- Joined: 2003-01-07 21:46
- Location: .pa.us
PDB and exceptioninfo - how to not get ?'s?
I am having very bad luck in generating useful exceptioninfo.txt logs on my local branch of DC++. Regardless, they have the typical: "DCPlusPlus!0x0053253E : ?" lines. I haven't messed with the compilation switches, except to add winmm.lib to the additional dependencies of the DCPlusPlus project. Obviously I can always fire up VS.Net's debugger when I get an exception, but good exceptionlog.txt's is a loose end I want to tie up.
Any suggestions?
Any suggestions?
I have the same (or similar) problem. I've been playing around with some modifications and have generated the .pdb files. I've given it to my flatmates to test it out, but 2 of them, when it crashes seem to have ?'s yet if it crashes on my box, or my other flatmates box, it has all the details there. Am I doing something wrong? Is there a particular way to use these .pdb files? Do you need something installed. I haven't been able to find and similarities or differences on installed software on the other machines that obviously point to this.
-
- DC++ Contributor
- Posts: 3212
- Joined: 2003-01-07 21:46
- Location: .pa.us
Hey phantom, are those people using Windows 2000?
My system won't generate valid exceptioninfo.txt files even with a precompiled DC++ binary, from sourceforge. I'm running Win2k SP3. My other 2k box (SP3 as well) won't generate them either. My XP laptop, on the other hand, generates a valid exceptioninfo.txt perfectly with the same binary. (I tested with 0.232 and the Finished Downloads bug ).
The code is derived from the Extended Trace stuff at Code Project. Maybe there are some gotchas with specific versions of Windows.
(I'm tired of having to close bugs because they don't have a good exceptioninfo.txt attached)
My system won't generate valid exceptioninfo.txt files even with a precompiled DC++ binary, from sourceforge. I'm running Win2k SP3. My other 2k box (SP3 as well) won't generate them either. My XP laptop, on the other hand, generates a valid exceptioninfo.txt perfectly with the same binary. (I tested with 0.232 and the Finished Downloads bug ).
The code is derived from the Extended Trace stuff at Code Project. Maybe there are some gotchas with specific versions of Windows.
(I'm tired of having to close bugs because they don't have a good exceptioninfo.txt attached)
-
- DC++ Contributor
- Posts: 3212
- Joined: 2003-01-07 21:46
- Location: .pa.us
On digging a little further, it looks like the SymGetSymFromAddr() function is returning 487 (which is "Attempt to access invalid address"). I googled around a bit, and it looks like it has to do with versions of imagehlp.dll and debughlp.dll. My Win 2000 SP3 install has versions 5.0.2195.5242 installed. Windows 2000 SP2 apparently had 5.0.2195.2104 (and .2778) installed. I was not able to create a good exceptioninfo.txt with either version of DLLs.
But anyway, Visual Studio .NET has 5.1.2600, but doesn't install that version to your system32 directory. 5.1.2600 is standard on XP, which explains why XP error logs are never screwed up. When I replaced the imagehlp.dll / dbghelp.dll files with version 5.1.2600, it worked perfectly.
Now, I don't know where this gets us.
Getting every 2000 user (and before) to replace two DLLs, one of which is in use (IMAGEHLP) with two versions from XP is not really possible.
Someone else want to do a little legwork on this?
But anyway, Visual Studio .NET has 5.1.2600, but doesn't install that version to your system32 directory. 5.1.2600 is standard on XP, which explains why XP error logs are never screwed up. When I replaced the imagehlp.dll / dbghelp.dll files with version 5.1.2600, it worked perfectly.
Now, I don't know where this gets us.
Getting every 2000 user (and before) to replace two DLLs, one of which is in use (IMAGEHLP) with two versions from XP is not really possible.
Someone else want to do a little legwork on this?
-
- DC++ Contributor
- Posts: 3212
- Joined: 2003-01-07 21:46
- Location: .pa.us
A good fix is that we could change the release version of DCPlusPlus to link against dbghelp.dll (instead of imagehlp.dll) and then redistribute the dbghelp.dll file (which is redistributable according to microsoft).
A change or two needs to be made to the ExtendedTrace.cpp/h files, but other than that, it works for me, and it's the solution I'll be using until someone shows me a better way.
A change or two needs to be made to the ExtendedTrace.cpp/h files, but other than that, it works for me, and it's the solution I'll be using until someone shows me a better way.
GargoyleMT
The problem is that VS doesn't have a comprable dll of that same version that has the DEBUG Symbols loaded into it. To use the same versions and get debug info you have to find those DLL's with DEBUG symbols generated for it.......(I hope I am making since, its been a while since I programmed in Windows NT)
If you do a search at Microsofts support site you should be able to find downloads for dll's w/Debug Symbols.
~Moch
The problem is that VS doesn't have a comprable dll of that same version that has the DEBUG Symbols loaded into it. To use the same versions and get debug info you have to find those DLL's with DEBUG symbols generated for it.......(I hope I am making since, its been a while since I programmed in Windows NT)
If you do a search at Microsofts support site you should be able to find downloads for dll's w/Debug Symbols.
~Moch
-
- DC++ Contributor
- Posts: 3212
- Joined: 2003-01-07 21:46
- Location: .pa.us