Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

User exception handler in C (Developers)

posted by RayeR Homepage, CZ, 30.07.2020, 13:18

Thanks, it led me to this example:
http://www.delorie.com/djgpp/doc/libc/libc_641.html

It seems DJGPP have good tools for exception handling.
CPU context is probably saved automatically in __djgpp_exception_state structure from where I can check the opcode caused exception, read an manipulate registers and also skip "bad" opcode and resume program execution by longjmp(__djgpp_exception_state, 0);
I'm not sure what all functions I can call from the handler, I would need just printf.

I would also need to implement this mechanism in my windows kernel driver because it's anoying to let exception BSOD and restart whole computer. I don't know if kernel winapi have support of similar function to hook exception handler or would I have to do it in assembler.

Also I'm thinking about an idea of using exception handler to emulate missing CMOV instruction on some CPUs that caused lot of problems as many libs and programs are compiled with CMOV (without recompiling all code). But the problem is that every program replaces/installs it's own default exception handler. It would need to make some TSR that will monitor that exception vector has changed and it would hook it again to be the 1st handler to be executed to properly emulate CMOV. Or could me make as a patch for DJGPP binaries that will find default exception handler code and inject CMOV handling code there but it would need extra space for additional code in binary, more uneversal and cleaner would be the TSR way...

---
DOS gives me freedom to unlimited HW access.

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 225 users online (0 registered, 225 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum