Bonjour,
Existe t’il un package Debian, qui permet d’afficher en temps réel les valeurs et les types de toutes les données qu’un processus met en mémoire.
Merci
Bonjour,
Existe t’il un package Debian, qui permet d’afficher en temps réel les valeurs et les types de toutes les données qu’un processus met en mémoire.
Merci
Remplacer $$ par le pid du processus qui t'intéresse.
Tu peux aussi lister tous les descripteurs de fichiers ouverts via [code] ls -la /proc/$$/fd/[/code]
Remplacer $$ par le pid du processus qui t’intéresse.
Tu peux aussi lister tous les descripteurs de fichiers ouverts via ls -la /proc/$$/fd/
En fait, ce que je voudrai c’est pouvoir voir, les valeurs des variables stockés en mémoire par le processus, et non leur adresse.
Par exemple voir le nombre entier pour une variable de type int , ou la chaine de caractère pour une variable de type string.
En codant un peu de C, tu pourras lire la valeur stockée à cette adresse : http://stackoverflow.com/questions/16778155/in-c-how-can-i-print-out-what-is-stored-at-a-specific-memory-address
En fait, je ne sait pas si les les “cases mémoire” contiennent uniquement la valeur binaire des variables, ou si elle contiennent également un préfixe, qui indique leur type.
Si j’ obtient la valeur int d’une string, ça n’auras pas beaucoup de sens.
Voilà une question intéressante. Ce qui est stocké en mémoire n’est que le contenu de la variable. Le type est une sorte de convention du programme avec lui-même (convention qui, au passage, ne sort pas de l’environnement du programme vers le système d’exploitation, par exemple).
Si tu veux pouvoir connaître aussi le type d’une variable, je t’invite à t’orienter vers les débuggeurs et les profilers.
Est ce qu’il est possible d’accéder aux instructions machines qui traitent ces variables ?
Cela dépend du langage de programmation utilisé. C’est vrai pour le langage C, pas forcément pour d’autres langages à typage “dynamique”.
Exercice Trouver les variables et leur contenu du programme befunge-98 suivant (lancé avec pyfunge par exemple )
# ;email.b98;"naej"v
>,v
|:<"F. Petit"<
v ,a<
>aab*1-:2+:c-:7-2/:88*5++:9-9-:a9++:b-:9+:d-:7a++:1-: aa+-:4+:d+:3+:a9+-88v
@_,#! #:<+2*aa+8+9:-d:+b:-c:+6:-a:-6*bb-+2*88:+b:-f:+b:-b:+a:+5:+4:-d:*ab*<
Il me semble que cela remet en cause la pertinence de la première question
De même pour le script python d’une ligne après la signature, approfondissez les notions d’espace de noms (et espace d’adressage).
« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français
python -c "print 'c2VuYXBidmYgUUJHIGNyZ3Znd3JuYSBORyBvaGVybmhpcmV2Z25mIFFCRyBwYn
o=\n'.decode('base64').decode('rot-13').replace(' DOT ', '.').replace(' AT ', '@')"