Мені потрібно знати, як я можу скинути пам'ять у Safari.app, у файл.
Я ввів gdb attach 6741 (мій PID сафарі).
А тепер що?
Я спробував шукати допомогу в gdb в google, але я не зміг знайти нічого, що б підказало мені, що робити, навіть під час пошуку "як скинути пам'ять в gdb" :(
Я спробував "допомогти скинути", це дало мені купу команд, але жодна з них не спрацювала. Найближчий до мене:
(gdb) dump memory ~/safaridump.bin 0
Missing stop address.
Отже, що стоп-адреса? Не знаю? Як я маю на увазі знати адресу зупинки? Я спробував шукати в Google "" відсутність зупинки "gdb", це не допомогло. Я поняття не маю, як я отримую стоп-адресу.
Я спробував це:
(gdb) дамп-пам'ять ~ / safaridump.bin 0 0xffffffff
Це теж не спрацювало.
Я отримав це:
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
Я справді цього не розумію. Все, що я хочу, це моя пам’ять у Safari, записана у файл.
Це для мене справді важливо. Я витратив близько 2 годин, набравши своє бідне серце в Safari, записуючи деяку дійсно важливу інформацію. І тоді дурний веб-сайт, на який я писав, не прийняв свою посаду, тому що я так довго писав, що я "вийшов". На той момент, коли я знову зареєструвався, моя посада була втрачена.
Я дуже хочу, щоб це написання було повернено. Все, що мені потрібно, - це пам’ять від Safari, тому я можу шукати вміст у кількох ключових словах, щоб побачити, чи зможу я повернути свої записи.
Будь-які ідеї?
Принаймні, навіть якщо я не повернуся, я дізнаюся щось про gdb. Що може стати в нагоді в моїй розробці програмного забезпечення;)
Дякую, якщо можете допомогти! Це так би означало для мене. Я збираюся залишити Safari та gdb бігати, поки не отримаю відповідь. Я не збираюсь відпускати це, поки я не дізнаюся, що я можу чи не можу повернути своє письмо.
Якщо хтось хоче дати більш загальні відповіді про те, як відновити втрачену роботу ... це добре. Наприклад, програми для пошуку всього мого жорсткого диска на предмет конкретних рядків, які, можливо, були у VRAM до того, як робота була втрачена.
...
http://www.mail-archive.com/use-revolution@lists.runrev.com/msg22978.html На цій сторінці написано, що kill -9 не генерує основний дамп. Незважаючи на те, що на цій сторінці написано http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html#SECCOREDUMPS , ця команда "kill -ABRT (PID ТУТ)" не створить основний дамп.
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 ..