温馨提示×

怎样调试Ubuntu触发错误

小樊
37
2026-08-05 23:05:09
栏目: 智能运维

在 Ubuntu 上“调试触发错误”可以有多种含义,取决于错误类型触发位置。下面我按常见场景给你一个分层排查与调试指南,你可以对照使用;如果有具体报错信息(终端输出、日志、截图),可以贴出来我帮你精准定位。


一、先明确:是什么错误?

先判断属于哪一类:

类型 示例
命令错误 command not foundpermission denied
程序崩溃 Segmentation fault (core dumped)
服务异常 failed to start xxx service
系统/内核级 kernel panic、卡死
脚本/代码错误 Python / Shell / C++ 报错
软件包问题 apt 依赖、冲突

二、最快定位方法(90% 问题)

1️⃣ 看错误提示本身

终端里最后 10–30 行非常关键:

command_that_failed

记下:

  • 错误码
  • 文件名
  • 行号
  • “permission denied / not found / signal / core dumped”

2️⃣ 查看系统日志(非常重要)

实时查看错误

journalctl -xe

查看本次启动的日志

journalctl -b

只看错误

journalctl -p err

3️⃣ 查看具体服务错误

systemctl status xxx
journalctl -u xxx

示例:

systemctl status nginx
journalctl -u nginx

三、程序崩溃调试(Segmentation fault)

1️⃣ 启用 core dump

ulimit -c unlimited

触发错误后会生成 core 文件。

2️⃣ 用 gdb 调试

gdb ./your_program core

常用命令:

bt
info locals
info registers

四、Shell / 脚本调试

1️⃣ Bash 脚本调试

bash -x your_script.sh

或脚本里加:

set -x

2️⃣ 常见 bash 错误

错误 原因
command not found PATH 或拼写
Permission denied chmod +x
No such file or directory 路径错误

五、软件包 / apt 错误

修复常见 apt 问题

sudo apt update
sudo apt -f install
sudo dpkg --configure -a

查看依赖问题

apt-cache depends xxx
apt-cache rdepends xxx

六、内核 / 驱动级错误

查看内核日志

dmesg | less

常用:

dmesg | grep -i error
dmesg | grep -i oom

七、图形界面 / GUI 程序错误

从终端启动程序

program_name

终端通常会输出 GUI 程序内部错误。


八、日志文件汇总(非常重要)

日志 位置
系统日志 /var/log/syslog
内核日志 /var/log/kern.log
登录 /var/log/auth.log
apt /var/log/apt/
X11 ~/.xsession-errors

九、常用调试工具合集

strace  # 系统调用
ltrace  # 库调用
gdb     # 程序调试
htop    # 实时资源
dmesg   # 内核信息

十、你可以这样继续问我(更有效)

请直接贴出:

✅ 完整报错文本
✅ 在什么操作后触发
✅ Ubuntu 版本(lsb_release -a
✅ 是命令 / 程序 / 服务 / 脚本?

例如:

Ubuntu 22.04,运行 ./demo 出现 Segmentation fault,使用 C++ 编写

我可以一步一步带你调试。

0