2010-05-29 2 views
-1

Possible en double:
use callback function to report stack backtracedéterminer le nom de la fonction en cours d'exécution de l'adresse eip?

Étant donné un vide * EIP et un tableau de symboles de fonction struct qui contiennent l'adresse, le nom symbolique, et la liaison de tous les symboles de fonction dans le fichier, comment puis-je déterminer la fonction en cours au moment de l'erreur?

+0

@WhirlWind définitivement un dupe - même utilisateur même. –

+0

Sur Linux, recherchez l'outil nommé addr2line: http://stackoverflow.com/questions/3151779/how-its-better-to-invoke-gdb-from-program-to-print-its-stacktrace/4611112#4611112 – karlphillip

Répondre

1

Si le module en cours d'exécution n'est pas déplacé à l'exécution, vous pouvez probablement essayer de vérifier si votre EIP se trouve entre deux adresses de fonction dans vos symboles de fonction.

+0

Même s'il est relocalisé, le système d'exploitation fournira un moyen de récupérer le décalage de relocalisation, et après avoir soustrait cela EIP la même chose peut être fait. –

Questions connexes