about summary refs log tree commit diff stats
path: root/src/libtools/threads.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-02-14 13:17:11 +0100
committerGitHub <noreply@github.com>2022-02-14 13:17:11 +0100
commit9e07083c0fc405621ae53f4786d330a74ae0606f (patch)
tree1e46838d2c8782ec04631e0369d1f64a7bdf9f41 /src/libtools/threads.c
parent78b51bc3676e6fc50644d618dbb5951b161247e5 (diff)
parent77925f264fbb60d67fb83e9f2d7d27f5898f7982 (diff)
downloadbox64-9e07083c0fc405621ae53f4786d330a74ae0606f.tar.gz
box64-9e07083c0fc405621ae53f4786d330a74ae0606f.zip
Merge pull request #236 from rajdakin/backtrace_fix
Fixed the backtrace wrapper
Diffstat (limited to 'src/libtools/threads.c')
-rwxr-xr-xsrc/libtools/threads.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libtools/threads.c b/src/libtools/threads.c
index 8f94692a..f16a7b08 100755
--- a/src/libtools/threads.c
+++ b/src/libtools/threads.c
@@ -234,9 +234,10 @@ static void* pthread_routine(void* p)
 	et->emu->type = EMUTYPE_MAIN;
 	// setup callstack and run...
 	x64emu_t* emu = et->emu;
-	Push64(emu, 0);		// PUSH BP
+	Push64(emu, 0);	// PUSH 0 (backtrace marker: return address is 0)
+	Push64(emu, 0);	// PUSH BP
 	R_RBP = R_RSP;	// MOV BP, SP
-	R_RSP -= 56;	// Gard zone
+	R_RSP -= 56;	// Guard zone
 	PushExit(emu);
 	R_RIP = et->fnc;
 	R_RDI = (uintptr_t)et->arg;