J'ai besoin de savoir comment vider la mémoire dans Safari.app, dans un fichier.
J'ai entré gdb attach 6741 (mon safari PID).
Maintenant quoi?
J'ai essayé de chercher de l'aide sur gdb sur google, mais je n'ai rien trouvé qui me dise quoi faire, même lorsque je cherchais "comment vider la mémoire dans gdb" :(
J'ai essayé "help dump", cela m'a donné un tas de commandes, mais aucune n'a fonctionné. Le plus proche je suis venu:
(gdb) dump memory ~/safaridump.bin 0
Missing stop address.
Alors, quelle est l'adresse d'arrêt? Je ne sais pas? Comment dois-je connaître l'adresse d'arrêt? J'ai essayé de rechercher sur google "" l'adresse d'arrêt manquante "gdb", cela n'a pas aidé. Je ne sais pas comment obtenir l'adresse d'arrêt.
J'ai essayé ceci:
(gdb) vidage de la mémoire ~ / safaridump.bin 0 0xffffffff
Cela n'a pas fonctionné non plus.
J'ai compris ceci:
gdb stack crawl at point of internal error:
0 gdb-i386-apple-darwin 0x0012fd8f internal_vproblem + 316
1 gdb-i386-apple-darwin 0x0012ffd3 internal_verror + 43
2 gdb-i386-apple-darwin 0x00130008 align_down + 0
3 gdb-i386-apple-darwin 0x00130a21 xstrvprintf + 0
4 gdb-i386-apple-darwin 0x00130c25 xmalloc + 40
5 gdb-i386-apple-darwin 0x000045d6 dump_memory_to_file + 241
6 gdb-i386-apple-darwin 0x0012dd3d execute_command + 713
7 gdb-i386-apple-darwin 0x0008815d command_handler + 213
8 gdb-i386-apple-darwin 0x000891af command_line_handler + 1120
9 gdb-i386-apple-darwin 0x001c2486 rl_callback_read_char + 137
10 gdb-i386-apple-darwin 0x000882ed rl_callback_read_char_wrapper + 18
11 gdb-i386-apple-darwin 0x000874b7 handle_file_event + 349
12 gdb-i386-apple-darwin 0x00086e7e process_event + 131
13 gdb-i386-apple-darwin 0x00087c38 gdb_do_one_event + 1178
14 gdb-i386-apple-darwin 0x00081bfd catch_errors + 78
/SourceCache/gdb/gdb-1346/src/gdb/utils.c:1208: internal-error: virtual memory exhausted.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) n
Je ne comprends vraiment pas ça. Tout ce que je veux, c'est ma mémoire dans Safari, écrite dans un fichier.
C'est vraiment important pour moi. J'ai passé environ 2 heures à taper mon pauvre cœur dans Safari, à écrire des informations vraiment importantes. Et puis le stupide site Web auquel j'écrivais n'a pas accepté mon message, parce que j'avais mis tellement de temps à l'écrire, que je m'étais «déconnecté». Au moment où je me suis reconnecté, mon poste a été perdu.
Je veux vraiment que cette écriture revienne. Tout ce que je veux, c'est la mémoire de Safari, donc je peux rechercher dans son contenu quelques mots-clés pour voir si je peux récupérer mon écriture.
Des idées quelqu'un?
À tout le moins, même si je ne récupère pas mon écriture, j'apprendrai quelque chose sur gdb. Ce qui pourrait être utile dans mon développement logiciel;)
Merci si tu peux aider! Cela signifierait tellement pour moi. Je vais laisser Safari et gdb fonctionner jusqu'à ce que j'obtienne une réponse. Je ne laisserai pas ça aller jusqu'à ce que je découvre que je peux ou non récupérer mon écriture.
Si quelqu'un veut donner des réponses plus générales sur la façon de récupérer le travail perdu ... c'est une bonne chose. Tels que des programmes pour rechercher sur tout mon disque dur des chaînes spécifiques qui auraient pu se trouver dans VRAM avant la perte du travail.
...
http://www.mail-archive.com/use-revolution@lists.runrev.com/msg22978.html Cette page indique que kill -9 ne génère pas de vidage de mémoire. Malgré ce que dit cette page http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html#SECCOREDUMPS , cette commande "kill -ABRT (PID HERE)" ne créera pas de vidage de mémoire.
ls -la /cores
total 0
drwxrwxr-t@ 2 root admin 68 23 Jun 07:19 .
drwxrwxr-t 38 root admin 1360 14 Dec 16:06 ..