Crash Issue
Upgraded to the latest build and applied all the SQL but many of my spells are crashing zones (windows) .. What am I doing wrong ?
Morty |
Build with debug information, attach the debugger to a running zone, make it crash, post the call stack.
|
how u attach debugger to a running zone?
|
Debug -> Attach to Process
|
Alright thats ... I'm used to just getting a core drop and then doing a dbg on it but windows is a whole other ball game .. I'll see if I can find that option in my compiler ..
morty |
Debug Info ?
Can some one link me a good guide for debugging binary's and stuff here ? I mean it's totally different .. I compiled with debug mode and i have athe following:
EmuShareMem.dll EmuShareMem.exp EmuShareMem.ilk EmuShareMem.lib EmuShareMem.pdb World.bsc WorldDebug.exe WorldDebug.ilk WorldDebug.pdb ZonePerl.exe ZonePerl.ilk ZonePerl.pdb What do I do with these files other than the exe files do i move them in there as well do they play a part in the debugging ? And after I put them in there I boot the server then do Attach Process and open a new zone with the file or how does that work exactly *boggle* mort |
You most likely want to add debugging information to the release version if that is what is crashing. If zone.exe is all that's crashing then that's what you should focus on.
From here it depends on how you can duplicate the problem. If it is easy to reproduce then start the server and get your toon that can cause the crash to the zone. Look in the logs folder to find what the process ID is for the zone you are in. It's the number in the log file name. In Visual Studio select Debug->Attach to Process and find the zone.exe that has the same number as the log file. Make it crash, copy the call stack from Visual Studio and post it if you can't figure it out yourself. If it is not easy to reproduce then you will probably have better results with a minidump. Secrets posted information on how to force those to be generated by crashes. You open them in Visual Studio, click the green arrow, and it will show you where the crash occured. |
Ok excellent instructions man, I got as far as the copy the call stack.. where is the call stack and how do i copy it ?
|
The call stack window is one of the tabs at the bottom of the screen. You select the contents, copy, paste.
|
Finally figured it out hehe , good instructions like i said.
Hopefully you can also tell me how to fix it that would rock :) Code:
> Zone.exe!Mob::CalcFocusEffect(focusType type=focusManaCost, unsigned short focus_id=65535, unsigned short spell_id=7058, bool best_focus=false) Line 3707 + 0x6 bytes C++ Code:
for (int i = 0; i < EFFECT_COUNT; i++) { |
Looking at your call stack, and looking at the source code, I could see this crash happening if you had an item with no innate focus effect, but that item has an aug which does have
a focus effect. Not sure if that code has been altered recently, but this patch may fix it (totally untested): Code:
Index: spell_effects.cpp |
Quote:
Anyway , I assumed + means add, and - means take away while looking at that so thats what I did and did it manually.. Also updated to the latest build so it's compiling now hopefully it doesn't wig out on something else now ! hehe Much appreciated hopefully this will work :) Morty |
Well... That fix worked now i'm getting something else entirely ! haha .. Any ideas here??
Code:
> Zone.exe!Mob::ExecWeaponProc(unsigned short spell_id=19361, Mob * on=0x01564b08) Line 2728 + 0x10 bytes C++ |
Quote:
Check your spells table for 19361, if it isn't there that's the ultimate problem. But there should be some safety checks in the code for it. There's a few different functions that bump into this problem. Ultimately ExecWeaponProc can use some functions to check the validity of the spell before it tries to fire off. First check your spells table for that and get back to me. Thanks, Akkadius |
I know this is an old thread, but I am trying to figure out how to attach a debugger to a zone as well. I tried setting debugging to yes and changing the C++ settings on the zone, but when I compile, there is no zone.pdb file. Did how this works change or am I just doing it incorrectly?
|
You are doing it incorrectly.
Under C/C++ -> General you need Debug Information Format set to Program Database, and under Linker ->Debugging you need Generate Debug Info set to Yes, and a valid filename in Generate Program Database File if there isn't already one there. |
Alright, it works now. Thank you very much.
|
Actually, I cannot get the debugger to attach to zone.exe. The only options for debugging are start new instance or step into new instance and both just tell me that zone.exe is not running even when it is.
|
Debug -> Attach to process, pick the one with the process id you want. It's part of the name of the log file. If you go to that zone and use some # commands you can see which number command log is newest and pick that one.
|
Ok, I must be doing something wrong. I have zone set to build releasebots, I went into zone's properties and changed debug information format to program database (/Zi), set Debugging to yes in linker/debugging and made sure it is generating a file, built the solution, moved over all of my normal .exe files and the zone.pdb file into my build. When I right click on zone and go to debugging though, there is no option to attach to process. It just says start new instance which gives an error message. Do I have to load in the processes or change where it is looking or something like that?
|
Have the zone running
In Visual Studio with the solution loaded, select Debug -> Attach to Process... from the menu. I don't know what you mean when you say you click on zone and go to debugging. Select proper process in the list according to the instructions above. Make it crash Post the call stack from the call stack window which is generally on the lower right. You can also press Alt-7 to find it, or select Debug -> Windows -> Call Stack. |
I was referring to right clicking zone in the solution explorer so display options like clean, build, and debug. The issue that I had was in the version of visual studio I am using, attach to process is not actually a command in debug when you select it on the task bar. I had to go to tools->Customize->Commands->Menubar:debug->Add Command->Debug->Attach to Process (This is just in case someone else ever has trouble finding attach to process as well). I got it working though and figured out what was causing the zones to crash. Thanks for the help.
|
All times are GMT -4. The time now is 10:23 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.