Écrire des débogueurs

Je suis très mécontent du peu d’informations disponibles sur l’écriture des débogueurs Windows.

La plupart du code que j’ai est le fruit d’un long processus d’essais et d’erreurs, la documentation «pense» évidemment que la plupart des sujets sont trop sortingviaux tout en expliquant en détail des choses évidentes et inutiles.

J’ai trouvé 2 articles ou plus, mais peu de choses que je ne savais pas en sont sorties.

Y a-t-il une documentation du tout, et je veux dire une documentation complète, ou un bon article (pas comment changer un octet en 0xCC dans vb.NET mais des trucs du monde réel) sur les débogueurs? Débogueurs avancés avec points d’arrêt mémoire.

Pour l’instant, je n’ai pas trouvé par exemple comment trouver combien d’octets étaient écrits dans un GUARD_PAGE_VIOLATION. Je fais juste un tampon avant et après que le code s’exécute et compare.

Aussi où trouver des informations sur debug_event.u.Exception.ExceptionRecord.ExceptionInformation ? (entre autres choses qui se trouvent dans debug_event)

Dois-je vraiment inverser moi-même l’environnement inverse?

C’est en effet une information disponible.

DEBUG_EVENT (et le rest de l’API Debug) est officiellement décrit dans MSDN ici: http://msdn.microsoft.com/en-us/library/windows/desktop/ms679308(v=vs.85).aspx

Il y a un bel article CodeProject: Écrire un débogueur Windows de base et sa suite: Ecrire Windows Debugger – Partie 2

Et enfin, une liste complète des références de Devon Strawn: Comment écrire un débogueur (Windows) – Références

Vous pouvez trouver “anciens” mais de bons exemples dans le SDK Windows: Regardez:. \ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Samples \ winbase \ debug \

Le debbughandler montre comment gérer les exceptions.