SVN: backtracexx/backtracexx.cpp
pluto
pluto at pld-linux.org
Thu Mar 12 10:51:51 CET 2009
Author: pluto
Date: Thu Mar 12 10:51:51 2009
New Revision: 10207
Modified:
backtracexx/backtracexx.cpp
Log:
- stackframe setup fix.
Modified: backtracexx/backtracexx.cpp
==============================================================================
--- backtracexx/backtracexx.cpp (original)
+++ backtracexx/backtracexx.cpp Thu Mar 12 10:51:51 2009
@@ -207,10 +207,22 @@
mov context.Ebp, ebp;
}
#else
-#error "win64 needs external assembly."
+#error "msvc/win64 needs external assembly."
#endif
#else
-#error "win32/64 gcc implementation not finished yet."
+#if defined( __MINGW64__ )
+ asm ( "foo: movq $foo, %0" : "=g" ( context.Rip ) );
+ register ::DWORD64 rsp asm( "rsp" );
+ context.Rsp = rsp;
+ register ::DWORD64 rbp asm( "rbp" );
+ context.Rbp = rbp;
+#else
+ asm ( "foo: movl $foo, %0" : "=g" ( context.Eip ) );
+ register ::DWORD esp asm( "esp" );
+ context.Esp = esp;
+ register ::DWORD ebp asm( "ebp" );
+ context.Ebp = ebp;
+#endif
#endif
}
More information about the pld-cvs-commit
mailing list