about summary refs log tree commit diff stats
path: root/src/include
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-06-17 12:08:43 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-06-17 12:08:43 +0200
commit1b47fd952caa889c252223b1996a06444d10e2fc (patch)
tree5b45ad0b419a8106088ac9a5ca96590350ff6a3a /src/include
parentbf9e5b8e6e3b42768a787f1a3d3c1f423d1fb38f (diff)
downloadbox64-1b47fd952caa889c252223b1996a06444d10e2fc.tar.gz
box64-1b47fd952caa889c252223b1996a06444d10e2fc.zip
Added ability to trace and dump 32bits code
Diffstat (limited to 'src/include')
-rwxr-xr-xsrc/include/box64context.h1
-rwxr-xr-xsrc/include/x64emu.h4
-rwxr-xr-xsrc/include/x64trace.h3
3 files changed, 6 insertions, 2 deletions
diff --git a/src/include/box64context.h b/src/include/box64context.h
index 2f82e010..954d93cb 100755
--- a/src/include/box64context.h
+++ b/src/include/box64context.h
@@ -185,6 +185,7 @@ typedef struct box64context_s {
     int                 clean_cap;
 
     zydis_dec_t         *dec;           // trace
+    zydis_dec_t         *dec32;         // trace
 
     int                 forked;         //  how many forks... cleanup only when < 0
 
diff --git a/src/include/x64emu.h b/src/include/x64emu.h
index a1e03f6e..dd324add 100755
--- a/src/include/x64emu.h
+++ b/src/include/x64emu.h
@@ -41,9 +41,9 @@ uint64_t GetRSP(x64emu_t *emu);
 uint64_t GetRBP(x64emu_t *emu);
 void ResetFlags(x64emu_t *emu);
 void ResetSegmentsCache(x64emu_t *emu);
-const char* DumpCPURegs(x64emu_t* emu, uintptr_t ip);
+const char* DumpCPURegs(x64emu_t* emu, uintptr_t ip, int is32bits);
 
-void StopEmu(x64emu_t* emu, const char* reason);
+void StopEmu(x64emu_t* emu, const char* reason, int is32bits);
 void EmuCall(x64emu_t* emu, uintptr_t addr);
 void AddCleanup(x64emu_t *emu, void *p, void* dso_handle);
 void AddCleanup1Arg(x64emu_t *emu, void *p, void* a, void* dso_handle);
diff --git a/src/include/x64trace.h b/src/include/x64trace.h
index 662f2740..9ecbb9d5 100755
--- a/src/include/x64trace.h
+++ b/src/include/x64trace.h
@@ -8,8 +8,11 @@ typedef struct zydis_dec_s zydis_dec_t;
 int InitX64Trace(box64context_t *context);
 void DeleteX64Trace(box64context_t *context);
 
+zydis_dec_t* InitX86TraceDecoder(box64context_t *context);
+void DeleteX86TraceDecoder(zydis_dec_t **dec);
 zydis_dec_t* InitX64TraceDecoder(box64context_t *context);
 void DeleteX64TraceDecoder(zydis_dec_t **dec);
+
 const char* DecodeX64Trace(zydis_dec_t *dec, uintptr_t p);
 
 #define ZYDIS_RUNTIME_ADDRESS_NONE (uint64_t)(-1)