OP'nin gerçekten RAM'den kastedildiğini ve olası bir yol olmadığını varsayarsak ve komut dosyasının yürütüldüğü işlemin sıfır çekirdek dosya sınırına sahip olduğunu varsayarsak (genellikle varsayılan ayardır cat /proc/PID/limits), sonra işleme eklemeniz gerekir ve çekirdek sınırını işlem görüntüsünü içerecek kadar büyük bir değere ayarlayın ve çekirdek dosyayı oluşturmak için ABRT sinyalini kullanın ya da bir işleme ekleyip RAM'den gdbişlemin çekirdek görüntüsünü oluşturabilecek bir araç kullanın .
- Yüklemek
gdb
Çalışan komut dosyasıyla veya kök sahipliğiyle aynı sahipliğe sahip bazı kabuklarda:
ps axİşlem kimliğini (PID) bulmak için yapın
gdb -p PID
Bunun işlem yürütmesinin devam etmesini engelleyeceğini, ancak işlem tablosundan kaldırmayacağını unutmayın.
- GDB'de komutu verin
generate-core-file
gdb, PID'nin Saved corefile core.1511315113 olduğu varsayılarak, böyle bir şeyle yanıt vermelidir .
- GDB'de komutu verin
detach
Komut dosyanız çalışmaya devam edecek (devam edecek).
- GDB'de komutu verin
quit
- Kabukta koş
strings core.15113 > my_script.sh
my_script.shBazı düzenleyicide açın . Komut dosyası metniniz, ortam bölümünden önce dosyanın sonuna doğru olmalıdır. Koddan önce ve sonra bölümleri kazımak için düzenleyiciyi kullanın.
Ödül komut dosyanızda kullanmadan önce bu çözümü başka bir komut dosyasında test edin. YMMV.
Dizi şöyle görünür:
yba@tavas:~$ gdb -p 15113
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Attaching to process 15113
Reading symbols from /bin/bash...(no debugging symbols found)...done.
Reading symbols from /lib/x86_64-linux-gnu/libtinfo.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libtinfo.so.5
Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libdl.so.2
Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007feaf4b4c7be in waitpid () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) generate-core-file
Saved corefile core.15113
(gdb) detach
Detaching from program: /bin/bash, process 15113
(gdb) quit
yba@tavas:~$