try catch (ILLEGAL OPCODE)
-
Hallo,
Ich versuche folgenden Quellcode
http://www.codeproject.com/KB/system/VmDetect.aspx?display=Print
fuer den GCC zu konvertieren
Leider wird der fehlerhafte Opcode nicht abgefangen(crash) durch catch?Gruss Tom
Das Programm:#include <cstdlib> #include <iostream.h> //perameter: -masm=intel using namespace std; bool rc = false; unsigned char vpccall[4] = { 0x0F, 0x3F, 0x07, 0x0B}; int main(int argc, char *argv[]) { try{ // Execute the magic code sequence asm volatile("push ebx"); asm volatile("mov ebx, 0"); // It will stay ZERO if VPC is running asm volatile("mov eax, 1"); // VPC function number // call VPC ((void (*)(void)) vpccall)(); asm volatile("test ebx, ebx"); asm volatile("setz [_rc]"); asm volatile("pop ebx"); } catch(...) { cout << "gefangen\n"; } system("PAUSE"); return EXIT_SUCCESS; }
-
seit wann schreibt man asm volatile??
denke da reicht asm
-
Habe das nur aus Verzweiflung gemacht.
-
catchfängt generell nur C++-exceptions, also solche, die mitthrowgeworfen worden sind. Ob Hardware-Exceptions umgewandelt werden, ist nicht definiert, kannst du aber in deinem Kompilerhandbuch nachlesen.Gruß
Don06
-
Danke fuer den Tipp Don06
__except kann ich in GCC nicht verwenden oder?
Alternative?Gruss Tom