调试器引擎可在运行调试器用户界面的机器之外的机器上运行。这两台机器不必是相同类型。例如,调试器用户接口可在 Microsoft® Windows® 机器上运行,而调试器引擎可在 UNIX® 平台上运行。唯一要求是两台机器能够通过 TCP/IP 进行通信。
当从 Eclipse 用户接口调试时,使用用户接口守护进程方式启动调试器引擎。在此方式下,将先启动用户接口,然后等待引擎连接至该用户接口。
irmtdbgc 命令在远程系统上启动调试引擎。irmtdbgc 命令具有语法 irmtdbgc [debugger parms] debuggee_name [debuggee parms],其中 [debugger parms] 包括(以任何顺序):
参数 | 描述 |
---|---|
-qhost= xxxx | xxxx 指定运行调试器用户接口的机器的主机名。这可以是主机名或 IP 地址。如果未指定,将使用环境变量 DER_DBG_ADDR 中的值。如果都未指定,则使用值 localhost。 |
-quiport= xxxx | xxxx 指定调试器用户接口在使用的端口号。如果未指定,则使用环境变量 DER_DBG_PORT。如果都未指定,则使用值 8001。 |
-i | 如果存在,则指定调试器将在装入调试对象后立即停止,而不运行至应用程序的主入口点。对于 C++,这意味着您可以调试应用程序中的静态初始化代码。 |
-p- | 如果存在,则指定存储在用户接口中的概要文件信息将被忽略。 |
-a xxxx |
xxxx 指定调试器将连接至的进程标识。 |
-qlang= xxxx | 指定调试对象的主要语言。它可以是 C、CL、COBOL、C++、Fortran、PL/1 或 RPG。缺省情况下,该引擎将使用主入口点的语言。如果应用程序使用多种编程语言,则可以覆盖缺省语言。 |
-qdisplay= xxxx | 这仅适用于 AIX® 和 LINUX 引擎。 xxxx 指定要用于调试对象的 X Window 显示器。缺省值为 DISPLAY 环境变量的值。 仅在下列情况下,调试对象才将使用 X Window 显示器:
如果这两个条件都不满足,则调试对象将使用用来启动调试引擎的会话。 |
-s | 指定调试对象将立即运行。调试对象将在到达概要文件中的断点或发出信号时停止。 |
-qstop=[module:]function | 将提供的函数作为主入口点。该程序将运行直到它到达指定函数,然后停止。此选项与 -s 选项不兼容。 |
-- | 这指示下一个参数将是调试对象名。仅当调试对象名以字符“-”开头时,才需要它。 |
调试器将使用 PATH 环境变量搜索该调试对象。在 AIX 上,调试对象还可以是核心文件。
下列环境变量控制引擎行为:
环境变量 | 描述 |
---|---|
DER_DBG_LOCAL_PATH | 指定调试器用来查找可执行文件和装入库的一组路径。在搜索 PATH 环境变量或系统的库搜索路径之前,调试器将搜索此路径。 |
DER_DBG_PATH | 指定调试器用来查找源文件的一组路径。如果调试信息不包含全限定源文件名,将使用这些路径。 |
DER_DBG_OVERRIDE | 指定调试器用来查找源文件的一组路径。将在搜索 DER_DBG_PATH 之前搜索这些路径。 |
DER_DBG_ADDR | 指定要在用户接口守护进程方式下使用的缺省主机。它可以是主机名或 IP 地址。缺省值为 localhost。它将由命令行参数 -qhost 覆盖。 |
DER_DBG_PORT | 指定要在用户接口守护进程方式下使用的缺省端口。缺省端口为 8001。它将由命令行参数 -quiport 覆盖。 |
DER_DBG_TABGRID | 指定在用户接口的源文件视图中展开制表符时要使用的制表符之间的间隔。缺省值为 8。 |
DER_DBG_TAB | 如果 DER_DBG_TABGRID 设置为 0,则它将给出要代替源文件中的每个制表符插入的空格数。缺省值为 8。 |
DER_DBG_ DEEP_STEP_DEBUG | 缺省情况下,单步调试功能仅检查紧随的子例程以获取调试信息。如果此变量设置为 Y 或 YES,该引擎将单步跳入直到找到具有调试信息的位置。如果您具有大量代码而没有调试信息,这可能会很慢。 |
DER_DBG_XWINDOW | 这仅适用于 UNIX 平台。 如果将此变量设置为 Y 或 YES,则允许调试对象将 X Window 用于输入/输出,前提是设置了有关使用 X Window 的其它条件。如果将此变量设置为 N 或 NO,则会禁止对调试对象使用 X Window。此变量的缺省值为 YES。 |
DER_DBG_ ALWAYS_FOLLOW_PARENT | 这仅适用于 UNIX 平台。 将此变量设置为 Y 或 YES 将强制调试器引擎在发生派生时以静默方式继续调试父进程。缺省行为是停止并询问用户他想要调试哪个进程。 |
DER_DBG_ NO_LIBPTHDEBUG | 这仅适用于 AIX。 如果此变量设置为 Y 或 YES,引擎将忽略 pthread 库的存在,而是仅显示内核线程。 |
如果引擎与用户接口之间有防火墙,您将需要提供适当的防火墙规则,以便引擎与用户接口之间可以进行通信。
防火墙位置 | 防火墙规则更改 |
---|---|
在用户接口处 | 防火墙必须通过用户接口端口(端口由 -quiport 指定)。用户接口将在此端口打开 TCP/IP 服务器。 |
在引擎处 | 不需要任何防火墙规则更改。引擎是 TCP/IP 客户机。 |