在 CDB 中设置符号和可执行映像路径

符号路径

符号路径指定符号文件所在的目录。 有关符号和符号文件的详细信息,请参阅符号

注意 如果连接到 Internet 或公司网络,则访问符号的最有效方法是使用符号服务器。 可以通过在符号路径中使用 srv* 或 symsrv* 字符串来使用符号服务器。 有关符号服务器的详细信息,请参阅 Windows 调试器的符号路径

若要控制 CDB 中的符号路径,请执行以下操作之一:

  • 输入 .sympath (设置符号路径) 命令。 如果使用符号服务器, .symfix (设置符号存储路径) 命令类似于 .sympath,但无需键入。

  • 启动调试器时,请使用 -y 命令行选项。 请参阅 CDB Command-Line 选项

  • 在启动调试器之前,请使用 _NT_SYMBOL_PATH 并_NT_ALT_SYMBOL_PATH 环境变量 来设置路径。 通过在_NT_ALT_SYMBOL_PATH后追加_NT_SYMBOL_PATH来创建符号路径。 (通常通过_NT_SYMBOL_PATH设置路径。但是,你可能希望在特殊情况下使用_NT_ALT_SYMBOL_PATH来替代这些设置,例如,当你拥有共享符号文件的专用版本时。)

    注意 如果使用 -sins 命令行选项,调试器将忽略符号路径环境变量。

可执行映像路径

可执行文件是处理器可以运行的二进制文件。 这些文件通常具有 .exe、.dll 或 .sys 文件扩展名。 可执行文件也称为模块,尤其是可执行文件被描述为较大应用程序的单元时。 在 Windows 操作系统运行可执行文件之前,它会将其加载到内存中。 内存中可执行文件的副本称为可执行映像或映像。

注意 这些术语有时使用得不精确。 例如,某些文档可能会对磁盘上的实际文件使用“image”。 此外,Windows 内核和 HAL 具有特殊的模块名称。 例如, nt 模块对应于 Ntoskrnl.exe 文件。

可执行映像路径指定二进制可执行文件所在的目录。

在大多数情况下,调试器知道可执行文件的位置,因此无需设置此文件的路径。

但是,在某些情况下,需要此路径。 例如,内核模式 小型内存转储 文件不包含在发生停止错误时内存中存在的所有可执行文件, (即崩溃) 。 同样,用户模式小型转储文件不包含应用程序二进制文件。 如果设置可执行文件的路径,调试器可以找到这些二进制文件。

调试器的可执行映像路径是由多个目录路径组成的字符串,用分号分隔。 支持相对路径。 但是,除非始终从同一目录启动调试器,否则应在每个路径之前添加驱动程序号或网络共享。 还支持网络共享。 调试器以递归方式搜索可执行映像路径。 也就是说,调试器会搜索此路径中列出的每个目录的子目录。

若要控制 CDB 中的可执行映像路径,请执行以下操作之一:

  • 输入 .exepath (Set Executable Path) 命令。

  • 启动调试器时,请使用 -i 命令行选项。 请参阅 CDB Command-Line 选项

  • 在启动调试器之前,请使用 _NT_EXECUTABLE_IMAGE_PATH 环境变量 设置路径。

    注意 如果使用 -sins 命令行选项,调试器将忽略可执行映像路径环境变量。