私は最近、Ubuntu Windowsアプリを通じてLinuxを起動しました。分割エラーctfを生成するプログラムによって生成されたコアファイルを確認する必要がありますが、コアファイルは生成されません。出力例:
...
Segmentation fault (core dumped)
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF#
現在、ディレクトリ(つまり、プログラムが実行されているディレクトリ)にコアファイルはありません。すべてのシェルのハードおよびソフト制限は無制限です。
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF# ulimit -S -c
unlimited
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF# ulimit -H -c
unlimited
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF#
すべての端末で動作するように.bashrcファイルを介して設定しました。
$HOME/.bashrc:
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi
alias ctf='cd /mnt/c/Users/Troy\ Neubauer/Documents/CTF'
ctf
ulimit -H -c unlimited
ulimit -S -c unlimited
prlimitを使用して、プロセスの実行中にsegfaultが発生する前に設定を確認します。
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF# prlimit --pid 549
RESOURCE DESCRIPTION SOFT HARD UNITS
AS address space limit unlimited unlimited bytes
CORE max core file size unlimited unlimited bytes
...
そして、ハード制限とソフト制限はどちらも無制限です。しかし、以下を使用すると:
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF# cat /proc/549/limits
Limit Soft Limit Hard Limit Units
...
Max core file size 0 unlimited bytes
...
ソフト制限はゼロとして返されます。これがprlimitレポートと異なるのはなぜですか?制限ファイルを生成するには、ソフト制限はゼロでなければなりませんか?
/etc/ssh/sshd_config ファイルに "UsePAM yes" があり、/proc/sys/kernel/core_pattern が存在せず、/var/lib/systemd/coredump/ が空です。
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF# ls /var/lib/systemd/coredump/
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF#