Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Do you wan't DrWatson32 Crashlogs ?  (Read 11677 times)

Purple Gorilla

  • Bay Watcher
    • View Profile
Do you wan't DrWatson32 Crashlogs ?
« on: July 27, 2015, 02:32:30 pm »

What makes Dwarf Fortress umplayable are the many crashes. Some are deterministic, some happen randomly, and the worst happen while saving. The Bugtracker Forum refuses any report on a nondeterministic crash, because you cannot bring a savefile for that.
If that happens, shall we upload (or Post) the DrWatson32 crashlog to help ? From the Offending adress, and the Listing, that Tarn Adams should have, he should be able to find the offending funktion, and from the diassembled code it should be able to find the exact command that caused it, and fix the bug. Most likely, the funktion was called with a wrong parameter, but he could add code to intercept that and make the programe more failsafe.
DrWatson32 is a Programe that comes with Windows, that intercepts processor interupts and stores a logfile at the following place :
<Systemdrive>:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\Dr Watson\DRWTSN32.LOG
You also get a coredump, but that is probably too large too upload.
If it isn't running automatically (dempends on OS version), you can start it by executing :
<Systemdrive>:\WINDOWS\system32\DRWTSN.EXE

It appears, that most crashes have the following format:
1. Something acesses a dangling Pointer. This is no Problem yet, as the Memory that onced belonged to the programe still belongs to the programe.
2. It reads another Pointer of an offset towards the pointer
3. It acceses the second pointer, that contains rubbish or zero and causes a segfault.

In C this should be a pointer to a structure, that contains a pointer. So checking Pointers read from pointers for NULL or values out of the programe memory adresses should help. Note, that in C++, Objects are often pointers, that don't look obviously like pointers, so using the & Operator on objects or rewriting library classes that dynamically allocate memory might be necessary.

Cinder

  • Bay Watcher
  • This machine kills fascists.
    • View Profile
Re: Do you wan't DrWatson32 Crashlogs ?
« Reply #1 on: August 02, 2015, 05:41:04 am »

It might help Toady in identifying the cause, so perhaps yes. Then again, I don't think segfaults are that easy to deal with.
Logged
One True Polycule with flame99 <3

Avatar by mecchi