如何通过securecrt远程调试ubuntu应用
导读:通过 SecureCRT 远程调试 Ubuntu 应用的实操指南 一 环境准备与连通性 在 Ubuntu 上安装并启动 OpenSSH 服务器,确认服务处于可用状态: 安装:sudo apt-get update &&...
通过 SecureCRT 远程调试 Ubuntu 应用的实操指南
一 环境准备与连通性
- 在 Ubuntu 上安装并启动 OpenSSH 服务器,确认服务处于可用状态:
- 安装:sudo apt-get update & & sudo apt-get install -y openssh-server
- 状态:sudo systemctl status ssh
- 启动/自启:sudo systemctl start ssh & & sudo systemctl enable ssh
- 获取 Ubuntu 的 IP 地址(如用 ifconfig 或 ip a),确保与 SecureCRT 所在主机网络互通(同一网段或路由可达)。
- 如启用了防火墙,放行 22 端口(UFW 示例:sudo ufw allow 22)。
二 建立 SecureCRT SSH 会话
- 新建会话:Protocol 选 SSH2;Hostname 填 Ubuntu IP;Port 22;Username 填登录用户。
- 认证方式:
- 密码登录:连接时输入用户密码。
- 密钥登录(推荐):在 SecureCRT 使用公钥认证(Session Options -> Connection -> SSH2 -> Authentication -> PublicKey),私钥保存在本地;Ubuntu 侧将公钥追加到 ~/.ssh/authorized_keys,权限设为 600/700。
- 会话外观与终端:
- 字符编码设为 UTF-8(Options -> Session Options -> Terminal -> Appearance -> Character encoding)。
- 仿真终端类型选 Linux(Session Options -> Terminal -> Emulation -> Terminal)。
三 远程调试的常用方式
- 交互式调试(最快速)
- 直接运行程序:gdb ./your_app 或 gdb -ex “run” --args ./your_app
- 已运行进程:gdb -p
- 常用命令:break/b、continue/c、step/s、next/n、print/p、backtrace/bt、thread apply all bt、set follow-fork-mode child、set detach-on-fork off。
- 程序日志与核心转储
- 日志:运行时重定向输出到文件(例如 ./your_app > app.log 2> & 1),或用 log 库写入关键路径。
- 核心转储:ulimit -c unlimited 开启;/proc/sys/kernel/core_pattern 配置转储路径与命名;gdb ./your_app core 分析。
- 远程 GDB 调试(跨主机/容器)
- 目标机运行:gdbserver 0.0.0.0:2345 ./your_app(端口自定义,如 2345)
- SecureCRT 会话中:gdb ./your_app
- 连接:target remote < Ubuntu_IP> :2345
- 常用:continue、break、print、thread apply all bt
- 附加到已运行进程
- 查 PID:pgrep your_app 或 ps -ef | grep your_app
- 附加:gdb -p ,随后使用 bt、info threads、thread 等命令排查。
- 自动化与批量
- 使用 .gdbinit 初始化断点与日志;结合 screen/tmux 保持会话;必要时用 SecureCRT 的脚本功能做批量启动与采集。
四 文件传输与代码同步
- SFTP 会话:在 SecureCRT 中直接打开 SFTP 标签页,或用 sftp < Ubuntu_IP> 登录;常用 get/put/mget/mput 同步源码与可执行文件。
- Zmodem(可选):配合 lrzsz 在终端中直接发送/接收文件(需服务器安装 lrzsz)。
- 构建与部署建议:在 Ubuntu 侧编译(避免跨架构问题),再用 SFTP 拉回可执行文件或产物。
五 常见问题与排查
- 连接被拒绝/超时
- 检查 Ubuntu 上 ssh 服务是否运行(sudo systemctl status ssh),端口是否监听(sudo netstat -tulpen | grep :22),防火墙是否放行(sudo ufw status)。
- 中文乱码
- SecureCRT:Options -> Session Options -> Terminal -> Appearance -> Character encoding 设为 UTF-8。
- 密钥登录失败
- 确认 Ubuntu 侧 ~/.ssh/authorized_keys 权限为 600,~/.ssh 为 700;公钥内容完整无多余换行;SELinux/AppArmor 未拦截。
- 虚拟机网络不通
- 确认 VMware NAT/桥接配置正确,Ubuntu 获取到与宿主机同网段 IP,并能互相 ping 通;必要时固定 IP 以免变动。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过securecrt远程调试ubuntu应用
本文地址: https://pptw.com/jishu/761668.html
