Go to file
Duncan Ogilvie ed4bdd1a01 Address review: preserve other hardware breakpoints and per-thread step state on thread exit
Two fixes from PR review of the thread-exit reset-recovery:

- When restoring the hardware breakpoint after the stepped-over thread exits, rebuild
  each still-suspended thread's debug registers from the authoritative DebugRegister[]
  table (re-arming every enabled slot, as CREATE_THREAD does) instead of from the
  exiting thread's now-gone context. The old code rebuilt DR7 from GetContextData()
  (the dead thread), writing a DR7 with only the restored slot to every thread and
  silently disabling any other hardware breakpoint. The restore is also moved before
  the threads are resumed, since SetThreadContext does not reliably update the debug
  registers of a running thread.

- Erase the per-thread single-step state in the EXIT_THREAD handler. A thread can exit
  after StepInto() armed its step but before the trap event arrives; leaving the entry
  behind means a reused thread id inherits it (StepInto declines to arm, or a later
  single-step fires the dead thread's callback).
2026-07-16 02:28:39 +02:00
TitanEngine Address review: preserve other hardware breakpoints and per-thread step state on thread exit 2026-07-16 02:28:39 +02:00
TitanEngineLoaders/LibraryLoader sign LibraryLoader executables 2018-10-31 00:13:20 +01:00
distorm Vendor distorm and scylla_wrapper 2026-04-12 13:49:25 +02:00
hooks Update AStyle formatting tools 2021-11-15 02:57:33 +01:00
scylla_wrapper Code formatting 2026-04-13 11:41:19 +02:00
.gitattributes Add CMake project 2026-04-12 15:11:17 +02:00
.gitignore Add CMake project 2026-04-12 15:11:17 +02:00
CMakeLists.txt Make everything standards-compliant 2026-04-12 17:38:04 +02:00
LICENSE added LGPLv3 license 2014-07-01 16:59:33 +02:00
TitanEngine.sln Vendor distorm and scylla_wrapper 2026-04-12 13:49:25 +02:00
cmake.toml Make everything standards-compliant 2026-04-12 17:38:04 +02:00
cmkr.cmake Add CMake project 2026-04-12 15:11:17 +02:00
format.bat Update AStyle formatting tools 2021-11-15 02:57:33 +01:00
install.bat added pre-commit autoformat (run install.bat after cloning) 2014-08-16 20:15:19 +02:00
readme.txt fixed EstimatedSize() to work with scylla 2014-01-20 17:29:24 +01:00
release.bat Vendor distorm and scylla_wrapper 2026-04-12 13:49:25 +02:00

readme.txt

This is a bugfixed & enhanced version of TitanEngine v2.0.3

The following things have been fixed/added (list might be incomplete):
- fixed memory breakpoints in general
- fixed harware breakpoints in general
- only report exceptions that are unhandled by the debugger
- working on x64 (previously there was a structure alignment problem)
- some code commenting
- fixed DumpProcessExW (found/fix provided by Aguila)
- added a callback on the system breakpoint
- added memory breakpoints on execute
- added QWORD hardware breakpoints
- smaller and faster DLL loaders
- supports multiple calling conventions (including the callbacks)
- MinGW import libraries
- fixed exception handling
- Importer functions use Scyllas business logic now, much more accurate
- updated distorm lib to v3, was v1
- countless code improvements

NOTE: LUA, Python, MASM and Delphi might not work correctly
      Mainly because their headers havent been adjusted 
      to these changes. However this is easy. Compare with 
      C/C++ headers, fix it up and send us.
      
      
If you are good with these kinda codes, please help review, do pull-requests, 
and criticize what you think can be be improved !

You can discuss with us here 
http://forum.tuts4you.com/forum/138-titanengine-community-edition/