这是 gdbserver 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
gdbserver - GNU 调试器的远程服务器
概要
数据库服务器 COMM PROG [ARGS...]
gdbserver --附加 COMM PID
gdbserver--多 COMM
商品描述
数据库服务器 是一个程序,它允许您在与 GDB 不同的机器上运行 GDB
正在运行被调试的程序。
用法(服务器(目标)端):
首先,您需要将要调试的程序的副本放在目标上
系统。 如果需要,可以剥离该程序以节省空间,如 数据库服务器 不在乎
关于符号。 所有符号处理都由主机上运行的 GDB 负责
系统。
要使用服务器,请登录到目标系统,然后运行 数据库服务器 程序。 你
必须告诉它 (a) 如何与 GDB 通信,(b) 你的程序名称,以及 (c) 它的
论据。 一般语法是:
目标> gdbserver [ ...]
例如,使用串行端口,您可能会说:
目标> gdbserver /dev/com1 emacs foo.txt
这说明 数据库服务器 使用 foo.txt 参数调试 emacs,并与
GDB 通过 /开发/ com1. 数据库服务器 现在耐心等待主机 GDB 与其通信。
要使用 TCP 连接,您可以说:
目标> gdbserver 主机:2345 emacs foo.txt
这和上一个例子说的差不多,除了我们要
通过 TCP 与“主机”GDB 通信。 “host:2345”参数意味着我们是
希望看到从“主机”到本地 TCP 端口 2345 的 TCP 连接。(目前,
“主机”部分被忽略。)您可以为端口号选择任何您想要的数字
因为它不与目标系统上的任何现有 TCP 端口冲突。 同一个端口
主机GDB的“目标远程”命令中必须使用number,这将被描述
不久。 请注意,如果您选择的端口号与其他服务冲突,
数据库服务器 将打印错误消息并退出。
数据库服务器 也可以附加到正在运行的程序。 这是通过 - 附
争论。 语法是:
目标> gdbserver --attach
PID 是当前正在运行的进程的进程 ID。 没有必要指出
数据库服务器 在运行进程的二进制文件中。
要在不提供初始命令来运行或进程 ID 的情况下启动“gdbserver”,
使用 - 多 命令行选项。 在这种情况下,您应该使用“目标
“extended-remote”以启动要调试的程序。
目标> gdbserver --multi
用法(主机端):
您需要在您的主机系统上的目标程序的未剥离副本,因为 GDB 需要
检查它的符号表等。 像往常一样使用目标启动 GDB
程序作为第一个参数。 (您可能需要使用 --波特 选项如果串行线
正在以 9600 波特以外的任何速度运行。)即“gdb TARGET-PROG”或“gdb --baud BAUD”
TARGET-PROG”。之后,您需要了解的唯一新命令是“目标远程”
(或“目标扩展远程”)。 它的参数是设备名称(通常是串行
设备,比如 /dev/ttyb),或“HOST:PORT”描述符。 例如:
(gdb) 目标远程 /dev/ttyb
通过串行线与服务器通信 /dev/ttyb,和:
(gdb) 目标远程目标:2345
通过 TCP 连接与主机“the-target”上的端口 2345 进行通信,您之前在该主机上
开始了 数据库服务器 具有相同的端口号。 请注意,对于 TCP 连接,您必须
启动 数据库服务器 在使用 `target remote' 命令之前,否则你可能会得到一个
类似于“拒绝连接”的错误。
数据库服务器 也可以同时调试多个次品,node中GDB手册中有说明
“Inferiors and Programs”——shell 命令“info -f gdb -n 'Inferiors and Programs'”。 在
这种情况下使用“extended-remote”GDB 命令变体:
(gdb) 目标扩展远程目标:2345
这个 数据库服务器 选项 - 多 在这种情况下可能会或可能不会使用。
配置
有三种不同的调用方式 数据库服务器:
· 调试由其程序名称指定的特定程序:
数据库服务器[ ...]
这个 COMM 参数指定服务器应该如何与 GDB 通信; 它要么
设备名称(使用串行线路)、TCP 端口号(“:1234”)或“-”或“stdio”
使用“gdbserver”的标准输入/标准输出。 指定要调试的程序的名称 PROG.
任何剩余的参数将逐字传递给程序。 当程序
退出,GDB 将关闭连接,“gdbserver”将退出。
·通过指定正在运行的程序的进程ID来调试特定程序:
gdbserver --attach
这个 COMM 参数如上所述。 提供正在运行的程序的进程 ID
in PID; GDB 将完成其他所有工作。 与之前的模式一样,当进程
PID 退出,GDB 将关闭连接,“gdbserver”将退出。
· 多进程模式——调试多个程序/进程:
gdbserver --multi
在这种模式下,GDB 可以指示 数据库服务器 要运行的命令。 不同于其他 2
模式,当被调试的进程退出时,GDB 不会关闭连接,所以你
可以在同一个会话中调试多个进程。
在每种模式中,您都可以指定以下选项:
- 帮帮我
列出所有选项,并附有简要说明。
- 版
此选项导致 数据库服务器 打印其版本号并退出。
- 附
数据库服务器 将附加到正在运行的程序。 语法是:
目标> gdbserver --attach
PID 是当前正在运行的进程的进程 ID。 没有必要指出
数据库服务器 在运行进程的二进制文件中。
- 多
在不提供初始命令来运行或处理 ID 的情况下启动“gdbserver”
附加,使用此命令行选项。 然后您可以使用“目标
“extended-remote”并启动要调试的程序。语法为:
目标> gdbserver --multi
-调试
指示“gdbserver”显示有关调试过程的额外状态信息。
此选项用于“gdbserver”开发和错误报告给
开发人员。
--远程调试
指示“gdbserver”显示远程协议调试输出。 此选项旨在
用于“gdbserver”开发和向开发人员报告错误。
--调试格式=选项1[,选项2,...]
指示“gdbserver”在调试输出的每一行中包含额外的信息。
--包装器
指定一个包装器来启动调试程序。 该选项后面应该是
包装器的名称,然后是要传递给包装器的任何命令行参数,然后
“--”表示包装器参数的结束。
- 一次
默认情况下, 数据库服务器 保持侦听 TCP 端口打开,以便额外的
连接是可能的。 但是,如果您使用以下命令启动“gdbserver” - 一次 选项,
连接到后,它将停止侦听任何进一步的连接尝试
第一个 GDB 会话。
使用 onworks.net 服务在线使用 gdbserver