Gérer un handler exception quelque soit la valeur ESP
1 réponse
Sivaller
Bonjour,
Je suis sur un projet qui est un Jitter Intel x86,
Pour jitter le code , les registres ne sont pas mémorisé mais directement
sur le processeur, c'est à dire les registres sont natifs même ESP.
Probléme : je voudrais que quand il y a une exception dans le code jitter
qu'un handler
exception soit appeler quelque soit la valeur ESP (dépend en fonction de
l'OS booter).
Comment faire ? car déjà quand je met ESP = 0 , le handler n'est pas appelé
Merci bcp ;
#include "stdafx.h"
#include <windows.h>
long dummy;
unsigned long _stdcall Except_Handler(
EXCEPTION_RECORD *ExceptionRecord ,
long EstablisherFrame ,
CONTEXT *ContextRecord ,
long DispatcherContext)
{
//si c'est bien une violation d'acces
if (ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION)
{
ContextRecord->Eax = (unsigned long)&dummy;
return ExceptionContinueExecution;
}
return ExceptionContinueSearch;
}
typedef struct
{
unsigned long ancvect;
unsigned long newvect;
}TV;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Burel
"Sivaller" wrote in message news:4586f027$0$25931$
Bonjour, Je suis sur un projet qui est un Jitter Intel x86, Pour jitter le code , les registres ne sont pas mémorisé mais directement sur le processeur, c'est à dire les registres sont natifs même ESP.
Probléme : je voudrais que quand il y a une exception dans le code jitter qu'un handler exception soit appeler quelque soit la valeur ESP (dépend en fonction de l'OS booter).
Comment faire ? car déjà quand je met ESP = 0 , le handler n'est pas
appelé
ben je ne pense pas que ESP soit protégé, donc je ne pense pas que le mettre à zéro déclenche une exception d'autant que justement ESP sera modifié par le processor au déclenchment d'une interruption ou d'une exception... puisque le processeur, avant d'appeler le handler, empile au moins EFLAGS, CS et EIP... (l'adresse du code qui à déclenché l'exception).
VB
"Sivaller" <sivaller.ni@voila.fr> wrote in message
news:4586f027$0$25931$ba4acef3@news.orange.fr...
Bonjour,
Je suis sur un projet qui est un Jitter Intel x86,
Pour jitter le code , les registres ne sont pas mémorisé mais directement
sur le processeur, c'est à dire les registres sont natifs même ESP.
Probléme : je voudrais que quand il y a une exception dans le code jitter
qu'un handler
exception soit appeler quelque soit la valeur ESP (dépend en fonction de
l'OS booter).
Comment faire ? car déjà quand je met ESP = 0 , le handler n'est pas
appelé
ben je ne pense pas que ESP soit protégé, donc je ne pense pas que le mettre
à zéro déclenche une exception d'autant que justement ESP sera modifié par
le processor au déclenchment d'une interruption ou d'une exception...
puisque le processeur, avant d'appeler le handler, empile au moins EFLAGS,
CS et EIP... (l'adresse du code qui à déclenché l'exception).
"Sivaller" wrote in message news:4586f027$0$25931$
Bonjour, Je suis sur un projet qui est un Jitter Intel x86, Pour jitter le code , les registres ne sont pas mémorisé mais directement sur le processeur, c'est à dire les registres sont natifs même ESP.
Probléme : je voudrais que quand il y a une exception dans le code jitter qu'un handler exception soit appeler quelque soit la valeur ESP (dépend en fonction de l'OS booter).
Comment faire ? car déjà quand je met ESP = 0 , le handler n'est pas
appelé
ben je ne pense pas que ESP soit protégé, donc je ne pense pas que le mettre à zéro déclenche une exception d'autant que justement ESP sera modifié par le processor au déclenchment d'une interruption ou d'une exception... puisque le processeur, avant d'appeler le handler, empile au moins EFLAGS, CS et EIP... (l'adresse du code qui à déclenché l'exception).