Class dump

Slt,
J'ai eu récemment un bug que j'ai eu du mal à élucider.
J'ai eu tellement de mal que je me suis penché sur class-dump, un utilitaire en ligne de commande qui apparemment permet de "hacker" une appli.
Mais je n'ai pas su le faire fonctionner.
J'ai fait "class-dump -a /chemin de mon appli/monappli.app/Content/MacOS/MonAppli" mais ca ne donne rien (pareil avec -H, ou autre option).
C'est plus compliqué que ca ? Quelqu'un connait ?
Merci !
J'ai eu récemment un bug que j'ai eu du mal à élucider.
J'ai eu tellement de mal que je me suis penché sur class-dump, un utilitaire en ligne de commande qui apparemment permet de "hacker" une appli.
Mais je n'ai pas su le faire fonctionner.
J'ai fait "class-dump -a /chemin de mon appli/monappli.app/Content/MacOS/MonAppli" mais ca ne donne rien (pareil avec -H, ou autre option).
C'est plus compliqué que ca ? Quelqu'un connait ?
Merci !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Mais...
1. si l'appli n'est pas au format mach-o (format des exécutables sous OSX),
2. si l'appli ne définit aucune classe (objective-c),
alors class-dump ne renverra rien !
.
Je build et je tente le classdump sur le produit résultant.
Peut être que ca n'a pas marché car je suis en "Development Style" ?
Et mon appli définit un paquet de classes....
Quand au mode "development", je ne pense pas que ça change quelque chose. Le seul changement est l'activation de Zero-Link, mais ça n'a rien à voir avec les définitions de classes.
Quelle version d'OS as-tu et quelle version de class-dump (les anciennes versions de class-dump ne fonctionnent pas sous 10.4).
Et, tu n'as vraiment aucun message dans le terminal à la suite de la commande ?
.
Ca me met l'en-tête genre (de mémoire) :
/* Salut, c'est class dump, je vais commencer mon
boulot.
Version machintruc */
Et c'est tout....
Sinon, que dire de plus...
Soit sûr de ton chemin.
Tu me parles d'une appli que tu fais, et que tu compiles en mode "development".
Par défaut, cette appli compilée se trouve quelque part dans "/.../ton-projet/build/development/ton-appli.app/Contents/Macos/ton-appli" (je ne suis pas sûr du chemin complet, mais ça doit ressembler à ça).
Or, dans ton premier post, le chemin semble différent...
.
Je regarde en détail ce midi.
Merci de ton aide !
Sa renvoie le contenue des fichiers .h avec les noms de registre à la place des variables (fp8, fp12, ... doivent être des registres) et sûrement des adresses (// 124 = 0x7c, // 128 = 0x80, ...) ou numéraux de variables de la classe concerner.
Oui, je croyais aussi que c'était un peu plus puissant, genre que l'appli se lançait et que ca traçait les méthodes et classes appelées selon les actions faites dans l'appli.
En fait, ca ne fait que vider les classes utilisées.
C'est utile lorsque l'on veut connaitre certaines méthodes privées du framework Apple même si on est pas sensés les utiliser...
Merci de votre aide !
Ah oui, en effet. On peut voir les méthodes priver d'une classe. Mais, si j'ai bien comprit, elles ne peuvent pas être utilisé (a moins de surchargé la classe peut-être).
Par exemple, si tu veux réduire ou augmenter le delai d'attente du dépliage d'un item d'une outlineview lors d'un drag dessus, tu peux surcharger la méthode adéquate, qui est une méthode privée.
C'est fortement déconseillé car Apple ne garantit rien quant à sa persistence ou son évolution, contrairement aux fonctions de l'API pour lesquelles ils garantissent son fonctionnement au moins pour qques version d'OS X.
Par ex, une méthode privée que tu auras surchargée et qui fonctionnera sous Tiger ne fonctionnera peut être pas sous Léopard ou Panther.
Bref, à utiliser avec précaution.