我最近通过 Ubuntu Windows 应用程序进入了 Linux。我需要查看由一个程序生成的核心文件,该程序对 ctf 进行分段错误,但是没有生成核心文件。输出示例:
...
Segmentation fault (core dumped)
root@TroysComputer:/mnt/c/Users/Troy Neubauer/Documents/CTF#
当前目录下没有core文件(也就是程序运行的同一个目录)我对所有shell的硬限制和软限制都是无限的:
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 我在进程运行时但出现段错误之前检查设置:
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
...
软限制返回为 0。为什么这与 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#