Debugging critical Warcraft III / Frozen Throne errors

Ouguiya

New Member
Reaction score
11
Hello everyone!

Today I am writing because I hope someone of you can give me some advice on to how to debug errors.

It should be mentioned here, that I understand a little bit about assembler and C++, so I should be able to at least do a little bit something with the output.

The problem which I have is that, sometimes, Warcraft just crashes, saying "Fatal error", and giving me a reference to the memory.

Since I suspect that this could be an error with my map and its script, the main problem is, that I cannot trace this back.

Until now, it only happend twice in about 30 games, which is not that much, but still enough to get me worried.


So, to get back to my original question: What would you suggest to do for debugging? If you can recommend a debugger, please tell me which one you use.

The system I am running is Windows XP, 32-bit, Professional edition.

Note: I cannot debug from the world editor, since the amount of functions is just too huge to go through each and every one of them, and the error never occurred when I did something "special", so I cannot trace it back this way, so I really would need an error output on what the game was doing when it crashed and why.

Problem is, that beside the memory reference, the fatal error message from Warcraft doesn't really provide me with much information.

Thanks in advance!

Yours,

Ouguiya
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
893
> I really would need an error output on what the game was doing when it crashed and why.

As far as I know, no such thing exists.

> go through each and every one of them

This is the only way I know how to debug. Perhaps there is something that can be of some help here. Crashes can be caused by a few different things, which might help narrow down your search. Look for these two items, as they are somewhat common:

1. Loops that could become infinite.
2. Corrupted models.
 

UndeadDragon

Super Moderator
Reaction score
447

Ouguiya

New Member
Reaction score
11
... And usually divisions by 0 too, at least I think so.

To normally debug, one would use a program like SoftIce to break exactly when the program crashes, problem is that (at least, it used to be that way), that the SoftIce debugger (which I really consider to be the best) didn't work as well with XP as it did with Windows 98, ME.

Anyway, thanks for the help.

Oh yeah, and Undeaddragon: Really cool avatar you have there! FF FTW! ;)

Yours,

Ouguiya
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
Divisions by 0 end the (trigger) thread, they don't crash the game AFAIK.

If you want, you can try a dual installation of Warcraft III. You have to have version 1.21b in order to use Grimoire's war3err/japi, which gives error messages and stops a few crashes:

  • Dividing by zero
  • Reading an uninitialized variable
  • Running too much code without a TriggerSleepAction()
  • Group and location leaks - call DestroyGroup(null) / call RemoveLocation(null) to report top five problem spots
  • ExecuteFunc("bad_function")
  • Player(bad_number)
  • Game pauses in single player when you walk away (add "nopause = on" w/o quotes in war3err.conf in main grimoire directory)

Grimoire comes with the Jass Newgen Pack (just in case you don't have it), but here is the link to the project thread itself (just in case you want to see documentation and stuff): http://www.wc3c.net/showthread.php?t=86652
 

Ouguiya

New Member
Reaction score
11
Heya! Darthfett!

This seems like a really good idea, and it's something I'd definetly like to try.

Thanks for your help, I will write again in some time, showing how it went.

Thanks again and until then, cya!

Yours,

Ouguiya
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top