Je reviens avec une question sur le développement de debugger
d'application :)
Pour l'instant j'arrive juste à toper des événenements de debug
avec WaitForDebugEvent et à afficher quelques informations
relatives à ceux-ci, mais ce que j'aimerais faire maintenant c'est
de pouvoir afficher la commande en ASM courante et pouvoir
avancer pas à pas en continuant à les afficher... comment est-ce
possible ?
Si vous avez des URL magiques, je suis super preneur, ça serait
super ! Des explications aussi, ou voir du code source :)
En réponse à *un seul* message, dans lequel je faisais simplement remarquer que (jusqu'à la version 7) BASM (assembleur intégré) était une couche importante de Delphi. Ce qui ne demande qu'à être développé.
Eh bien développons.
Le débat portait sur Delphi en tant que langage, le successeur de TP, PWO, etc. Pas de Delphi en tant qu'IDE. Delphi, c'est du Pascal, BASM est de l'assembleur. Dire que BASM est du Delphi est, POUR MOI, de la mauvaise foi pure. À ce compte là, disons alors que Developer Studio est le top, ou, poussons encore l'assimilation plus loin, Microsoft est mieux !
Je ne t'ai pas insulté, j'ai dit que ce genre d'assimilation était du n'importe quoi. Si j'insère de l'Assembleur dans du C, je fais de l'Assembleur, pas du C ! Pareil pour Delphi/Basm.
Tant que vous montrerez autant de mauvaise fois, vous ne gagnerez pas mes bons amis :-).
Maintenant, explique-moi comment "la solution est dans Delphi", au sujet d'écrire un désassembleur. Je suis toutes ouïes grandes ouvertes. Le gars qui a posé la question également je suppose...
-- AMcD®
http://arnold.mcdonald.free.fr/
Pierre Maurette wrote:
En réponse à *un seul* message, dans lequel je faisais simplement
remarquer que (jusqu'à la version 7) BASM (assembleur intégré) était
une couche importante de Delphi. Ce qui ne demande qu'à être
développé.
Eh bien développons.
Le débat portait sur Delphi en tant que langage, le successeur de TP, PWO,
etc. Pas de Delphi en tant qu'IDE. Delphi, c'est du Pascal, BASM est de
l'assembleur. Dire que BASM est du Delphi est, POUR MOI, de la mauvaise foi
pure. À ce compte là, disons alors que Developer Studio est le top, ou,
poussons encore l'assimilation plus loin, Microsoft est mieux !
Je ne t'ai pas insulté, j'ai dit que ce genre d'assimilation était du
n'importe quoi. Si j'insère de l'Assembleur dans du C, je fais de
l'Assembleur, pas du C ! Pareil pour Delphi/Basm.
Tant que vous montrerez autant de mauvaise fois, vous ne gagnerez pas mes
bons amis :-).
Maintenant, explique-moi comment "la solution est dans Delphi", au sujet
d'écrire un désassembleur. Je suis toutes ouïes grandes ouvertes. Le gars
qui a posé la question également je suppose...
En réponse à *un seul* message, dans lequel je faisais simplement remarquer que (jusqu'à la version 7) BASM (assembleur intégré) était une couche importante de Delphi. Ce qui ne demande qu'à être développé.
Eh bien développons.
Le débat portait sur Delphi en tant que langage, le successeur de TP, PWO, etc. Pas de Delphi en tant qu'IDE. Delphi, c'est du Pascal, BASM est de l'assembleur. Dire que BASM est du Delphi est, POUR MOI, de la mauvaise foi pure. À ce compte là, disons alors que Developer Studio est le top, ou, poussons encore l'assimilation plus loin, Microsoft est mieux !
Je ne t'ai pas insulté, j'ai dit que ce genre d'assimilation était du n'importe quoi. Si j'insère de l'Assembleur dans du C, je fais de l'Assembleur, pas du C ! Pareil pour Delphi/Basm.
Tant que vous montrerez autant de mauvaise fois, vous ne gagnerez pas mes bons amis :-).
Maintenant, explique-moi comment "la solution est dans Delphi", au sujet d'écrire un désassembleur. Je suis toutes ouïes grandes ouvertes. Le gars qui a posé la question également je suppose...
-- AMcD®
http://arnold.mcdonald.free.fr/
TigrouMeow
"yarocco" a écrit dans le message de news: 423f31e4$0$22740$
TigrouMeow wrote:
Bon à la limite si je peux pas faire ça, vous avez une explication simple à me faire si je veux backtracer lorsque je reçois un évènement de debug ? Comme ça en cas d'erreur, avec un peu d'espoir et un peu de temps, je pourrais indiquer où l'erreur a eu lieu... merci beaucoup beaucoup si vous pouvez m'aider, je me perds un peu dans mes recherches googliennes.
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
"yarocco" <aol@aol.com> a écrit dans le message de news:
423f31e4$0$22740$626a14ce@news.free.fr...
TigrouMeow wrote:
Bon à la limite si je peux pas faire ça, vous avez une explication simple
à
me faire si je veux backtracer lorsque je reçois un évènement de debug ?
Comme ça en cas d'erreur, avec un peu d'espoir et un peu de temps,
je pourrais indiquer où l'erreur a eu lieu... merci beaucoup beaucoup si
vous pouvez m'aider, je me perds un peu dans mes recherches googliennes.
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de
pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai
implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant
moi en c++ si tu veux).
"yarocco" a écrit dans le message de news: 423f31e4$0$22740$
TigrouMeow wrote:
Bon à la limite si je peux pas faire ça, vous avez une explication simple à me faire si je veux backtracer lorsque je reçois un évènement de debug ? Comme ça en cas d'erreur, avec un peu d'espoir et un peu de temps, je pourrais indiquer où l'erreur a eu lieu... merci beaucoup beaucoup si vous pouvez m'aider, je me perds un peu dans mes recherches googliennes.
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
yarocco
TigrouMeow wrote:
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
Sur le forum :) C'est la qu'il faut taper google dans son navigateur prefere et chercher DumpCallStack dans les groupes : http://groups.google.fr/groups?q=dumpcallstack&hl=fr&lr=&client=firefox-a&rls=org.mozilla:fr:official&selm<c8767f%240%2420710%247a628cd7%40news.club-internet.fr&rnum=1
par Arnaud Debaene
TigrouMeow wrote:
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de
pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai
implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant
moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
Sur le forum :)
C'est la qu'il faut taper google dans son navigateur prefere et chercher
DumpCallStack dans les groupes :
http://groups.google.fr/groups?q=dumpcallstack&hl=fr&lr=&client=firefox-a&rls=org.mozilla:fr:official&selm<c8767f%240%2420710%247a628cd7%40news.club-internet.fr&rnum=1
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
Sur le forum :) C'est la qu'il faut taper google dans son navigateur prefere et chercher DumpCallStack dans les groupes : http://groups.google.fr/groups?q=dumpcallstack&hl=fr&lr=&client=firefox-a&rls=org.mozilla:fr:official&selm<c8767f%240%2420710%247a628cd7%40news.club-internet.fr&rnum=1
par Arnaud Debaene
TigrouMeow
"yarocco" a écrit dans le message de news: 423f4168$0$22688$
TigrouMeow wrote:
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
Sur le forum :) C'est la qu'il faut taper google dans son navigateur prefere et chercher DumpCallStack dans les groupes : http://groups.google.fr/groups?q=dumpcallstack&hl=fr&lr=&client=firefox-a&rls=org.mozilla:fr:official&selm<c8767f%240%2420710%247a628cd7%40news.club-internet.fr&rnum=1
par Arnaud Debaene
J'ai testé l'objet qui est proposé et ça marche bien. Par contre le code est très très lourd à comprendre, et j'aime pas repomper et utiliser ça dans mon programme alors que je tilte pas vraiment... vous ne sauriez pas où je pourrais trouver une explication théorique ou les bases du backtracing sous windows ?
Je vous remercie encore ;)
"yarocco" <aol@aol.com> a écrit dans le message de news:
423f4168$0$22688$626a14ce@news.free.fr...
TigrouMeow wrote:
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de
pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai
implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant
moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
Sur le forum :)
C'est la qu'il faut taper google dans son navigateur prefere et chercher
DumpCallStack dans les groupes :
http://groups.google.fr/groups?q=dumpcallstack&hl=fr&lr=&client=firefox-a&rls=org.mozilla:fr:official&selm<c8767f%240%2420710%247a628cd7%40news.club-internet.fr&rnum=1
par Arnaud Debaene
J'ai testé l'objet qui est proposé et ça marche bien. Par contre le code est
très très lourd
à comprendre, et j'aime pas repomper et utiliser ça dans mon programme alors
que je
tilte pas vraiment... vous ne sauriez pas où je pourrais trouver une
explication théorique
ou les bases du backtracing sous windows ?
"yarocco" a écrit dans le message de news: 423f4168$0$22688$
TigrouMeow wrote:
Si tu veux backtracer, y'a deja un petit utilitaire sympa : un dumper de pile. Ca permet de voir quelles fonctions ont ete appellees. (je l'ai implemente en Delphi mais quelqu'un de ce forum l'avait fait bien avant moi en c++ si tu veux).
Ah mais où se cache t-il cet homme là ?
Sur le forum :) C'est la qu'il faut taper google dans son navigateur prefere et chercher DumpCallStack dans les groupes : http://groups.google.fr/groups?q=dumpcallstack&hl=fr&lr=&client=firefox-a&rls=org.mozilla:fr:official&selm<c8767f%240%2420710%247a628cd7%40news.club-internet.fr&rnum=1
par Arnaud Debaene
J'ai testé l'objet qui est proposé et ça marche bien. Par contre le code est très très lourd à comprendre, et j'aime pas repomper et utiliser ça dans mon programme alors que je tilte pas vraiment... vous ne sauriez pas où je pourrais trouver une explication théorique ou les bases du backtracing sous windows ?
Je vous remercie encore ;)
adebaene
TigrouMeow wrote:
Hello !
Je reviens avec une question sur le développement de debugger d'application :)
Pour l'instant j'arrive juste à toper des événenements de debug avec WaitForDebugEvent et à afficher quelques informations relatives à ceux-ci, mais ce que j'aimerais faire maintenant c'est de pouvoir afficher la commande en ASM courante
EXCEPTION_DEBUG_INFO contient l'adresse où l'exception s'est produite -- tu n'as qu'à décoder l'opcode. Si l'exception correspond à un breakpoint, l'exception arrivera parce que tu auras remplacé un opcode dans le programme par un breakpoint. Dans ce cas, c'est à toi de maintenir une map et de savoir quel était le code original avant que tu le remplaces (et tu devras réécrire l'opcode original si tu veux l'executer).
et pouvoir avancer pas à pas en continuant à les afficher...
Le mode pas-à-pas est géré par le processeur : C'est le bit TF (Trap Flag) du registre EFLAGS. Il se manipule via PUSHF/POPF. Voire les docs d'Intel pour les détails.
Arnaud
TigrouMeow wrote:
Hello !
Je reviens avec une question sur le développement de debugger
d'application :)
Pour l'instant j'arrive juste à toper des événenements de debug
avec WaitForDebugEvent et à afficher quelques informations
relatives à ceux-ci, mais ce que j'aimerais faire maintenant c'est
de pouvoir afficher la commande en ASM courante
EXCEPTION_DEBUG_INFO contient l'adresse où l'exception s'est produite
-- tu n'as qu'à décoder l'opcode.
Si l'exception correspond à un breakpoint, l'exception arrivera parce
que tu auras remplacé un opcode dans le programme par un breakpoint.
Dans ce cas, c'est à toi de maintenir une map et de savoir quel était
le code original avant que tu le remplaces (et tu devras réécrire
l'opcode original si tu veux l'executer).
et pouvoir
avancer pas à pas en continuant à les afficher...
Le mode pas-à-pas est géré par le processeur : C'est le bit TF (Trap
Flag) du registre EFLAGS. Il se manipule via PUSHF/POPF. Voire les docs
d'Intel pour les détails.
Je reviens avec une question sur le développement de debugger d'application :)
Pour l'instant j'arrive juste à toper des événenements de debug avec WaitForDebugEvent et à afficher quelques informations relatives à ceux-ci, mais ce que j'aimerais faire maintenant c'est de pouvoir afficher la commande en ASM courante
EXCEPTION_DEBUG_INFO contient l'adresse où l'exception s'est produite -- tu n'as qu'à décoder l'opcode. Si l'exception correspond à un breakpoint, l'exception arrivera parce que tu auras remplacé un opcode dans le programme par un breakpoint. Dans ce cas, c'est à toi de maintenir une map et de savoir quel était le code original avant que tu le remplaces (et tu devras réécrire l'opcode original si tu veux l'executer).
et pouvoir avancer pas à pas en continuant à les afficher...
Le mode pas-à-pas est géré par le processeur : C'est le bit TF (Trap Flag) du registre EFLAGS. Il se manipule via PUSHF/POPF. Voire les docs d'Intel pour les détails.