Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 236 103

  • Nb. de membres 187
  • Nb. d'articles 1 270
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» J'ai mis mon prog ObjDumpFuncs sur Aminet

J'ai mis mon prog ObjDumpFuncs sur Aminet#2203

4Contributeur(s)
thellierzzd10hartblinkElwood
3 Modérateur(s)
K-LElwoodcorto
thellier thelliericon_post
Salut

Certains d'entre vous l'ont vu tourner à l'Alchimie : c'est un prog que j'ai créé pour moi car rien de tel n'existait sur Amiga (à la base pour trouver l'infame bug "stack overflow" dans Microbe3D + Arexx)

Ce prog prend un éxecutable, le désassemble puis montre une liste des fonctions du prog.
On peut les trier par nom,taille,etc...
Et surtout on peut "suivre" une fonction : cad quelles fonctions appelent cette_fonction, et quelles fonctions cette_fonction appelle

C'est une sorte d'arbre des fonctions interactif

Note: les symboles et noms des fonctions doivent encore être dans l'executable (cad il ne doit pas avoir été "strippé") ce qui limite énormément l'usage de mon prog : essentiellement des progs dont vous avez les sources et que vous pouvez recompiler sous cette forme (ou des versions debug)

Pour quoi faire ?
1) voir quelles fonctions sont les plus grosses (ou utilisent le plus la pile) si on veut réduire la taille d'un prog
2) comprendre comment marche un prog que vous n'avez pas écrit:
Par exemple: vous voulez porter/recompiler/optimiser un gros projet alors mon prog peut vous permettre de comprendre comment il marche

Attention c'est un prog très rustique qui plante en le quittant... mais je sais pas pourquoi

Si vous ne comprenez toujours pas ce que fait ce prog alors lancez ObjDumpFuncs-ppc et sélectionnez ObjDumpFuncs-ppc comme prog à analyser

Alain Thellier



Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig

Message édité par : thellier / 02-12-2015 10:16
zzd10h zzd10hicon_post
Salut Alain,
Chez moi, il plante également au début.

Sur FE et 4.1.6, la fenêtre objdump s'affiche mais sans rien à l'intérieur (tout gris) et qq temps après, freeze !

J'ai réessayé une de tes anciennes versions (26/11/14), les fonctions s'affichent bien (mais toujours freeze au bout d'un certaint temps, pb déjà reporté à l'époque si je me souviens bien)

Sinon, pour ce que j'ai pu en voir, ce sera pratique à l'avenir 
Merci
thellier thelliericon_post
Merci d'avoir essayé Guillaume

Oupps : je me suis planté la version ppc (ancienne et buggée) est pas celle des sources
Clique build.sh

Alain

Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
zzd10h zzd10hicon_post
Ah oui, c'est mieux !

Par contre, 100% CPU et ok quand j'ai pris objdump lui-même en entrée mais en prenant un de mes programmes, objdump me demande un requester "nom_du_programme:"
artblink artblinkicon_post
Ca fonctionne que pour les programmes en C/C++ stp ?
Elwood Elwoodicon_post
La réponse est non, ça fonctionne avec tout type d'exécutable *mais* ça ne peut pas te permettre d'avoir les fonctions d'un programme Hollywood.
Pourquoi ?

1) la commande qu'utilise Alain est objdump (lire ici, chercher le texte "objdump"). Cet outil examine un exécutable "non strippé", c'est-à-dire pas nettoyé pour être plus petit mais qui contient toujours les noms des fonctions utilisées dans le code.
Du coup on peut afficher les fonctions appelées.

2) Hollywood est un langage interprété qui génère un fichier exécutable avec un "player" et ton code source (je suppose en tout cas). Ton source est complètement transformé pour générer un exécutable (fichier binaire). Pendant ce processus je suppose que plus rien ne subsiste du source d'origine donc on perd les noms des fonctions du langage LUA d'Hollywood et en plus l'exécutable généré doit certainement être "strippé". Au final le binaire n'est plus du tout exploitable par objdump.
--
Philippe Ferrucci
Avec une Sam460 et AmigaOS 4.1, je suis eco-responsable. Cool !
artblink artblinkicon_post
pas tort pépère... Un exécutable holly c'est le player "mélangé" au script créer... C'est dommage, pour optimiser mes codes, je ne peu le faire que de visu... ou ajouter un compteur FPS, mais je dois chercher longtemps pour trouver quel partie du code qui fait ramer le script complet

Ca manque un peu ce genre d'outil pour holly, dommage

Merci
thellier thelliericon_post
Merci pour les retours

Ouais j'avais mis ce truc sur Aminet car il trainait depuis un certain temps dans mes archives mais j'aurai du vérifier que tout était toujours ok
Mea culpa
Je vais revoir ça et reposter sur Aminet et ajouter un wait()

>un requester "nom_du_programme:"
Ben oui le nom du programme à désassembler

@artblink
Je pense que Elwood a raison
Et oui effectivement Adis et objdump sont des désassembleur et pour que cela marche il faut que les noms des fonctions soient toujours dans le binaire (programme ou .library) et c'est rarement le cas

Alain
Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
zzd10h zzd10hicon_post
">un requester "nom_du_programme:" 
Ben oui le nom du programme à désassembler "

Non, la fentêtre ASL pour choisir le fichier mais une fenêtre de requête d'Assignation.
Disons que si je spécifie de désassembler le prog toto, un requester s'affiche et me demande d'assigner un toto:


Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme