Jump to content
Tuts 4 You

Unhandled win32 exception in x64_dbg.exe [31028]


Recommended Posts


I just downloaded and tried today's release 9 x64.


It crashed while loading a pretty big application with lots of modules.

No dump was produced. Just a popup with  "unhandled win32 exception in x64_dbg.exe [31028]"


I've put a screen grab here: http://i58.tinypic.com/kdlsfl.jpg


Running with and without exceptions bypass, it crashed at the same point.

Some ATI graphics drivers are getting loaded at that point. I updated the drivers to the latest WHQL I could find but it made no difference.


Any idea why and how to get around it?



1) to help with critical errors, maybe you could have an option to write the log line-line, to an external file. Leave it to the user to stop logging at some point.

2) Allow disabling breakpoints on specific exceptions. Not just all as it does now. Something like the way IDA handles it. There's so many first chance exceptions in these big programs that it gets to be annoying to have to babysit them.



Link to comment

@roocoon: Is it right that you try to debug this program: http://www.autodesk.com/products/autodesk-3ds-max ?

Will add skipping specific exceptions in the next release.

Attached the symbols for release 9, please debug it with visual studio and see where the callstack leads.

@White: I will look at the first issue. The second issue is actually the behavior as I set it (it is just checking if the stuff you entered resolves to a number, but I will add a memory check).


EDIT: the crash reason seems to be TitanEngine, probably because the maximum number of modules/threads/whatever was exceeded (it uses static lists for everything). Attached TitanEngine that allows a maximum of 65536 modules to be loaded, it doesn't crash where it crashed before now and it starts 3dmax without problems. Notice however, that x64_dbg.exe will take around 315 mb of memory when 3dmax is fully loaded.


Edited by Mr. eXoDia
  • Like 1
Link to comment

So far so good with the fixed Titan engine.


It loaded up the application without problems.


But now I can't get hardware interrupts on data access to work.

I set up a couple of them but they don't kick in.

Is this implemented yet or it needs some trick to get it going.

Link to comment

@roocoon: I had problems with hardware breakpoints in the past, you should look at the debug registers and see if they change, the problem I had was that the DR7 register was set, but the dr0 etc didn't set. I fixed that issue quite a long time ago however.

TitanEngine needs a lot of rewriting (I started yesterday, but it's a lot of work to even split the HUGE TitanEngine.cpp file into multiple files).

Okay, after some testing: TitanEngine hardware breakpoints are broke again, I will look at it...

EDIT: Inside TitanEngine it was like: GetThreadContext(CONTEXT_CONTROL) near hardware breakpoints which use CONTEXT_DEBUG_REGISTERS. Attached a fixed version of TitanEngine again.


EDIT2: Also fixed the issues reported by White, hotfix available here: https://bitbucket.org/mrexodia/x64_dbg/downloads/release_009alphafix.rar


Edited by Mr. eXoDia
  • Like 4
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...