WinDbg常用命令系列---符号相关命令

ld (Load Symbols)

ld命令加载指定模块的符号并更新所有模块信息。

ld ModuleName [/f FileName]

参数:

  • ModuleName
    指定要加载其符号的模块的名称。modulename可以包含各种通配符和说明符。
  • /f FileName
    更改为匹配项选择的名称。默认情况下,模块名是匹配的,但使用/f时,文件名是匹配的,而不是模块名。文件名可以包含各种通配符和说明符。

调试器的默认行为是使用延迟符号加载(也称为延迟符号加载)。这意味着符号在需要之前不会实际加载。 另一方面,ld命令强制加载指定模块的所有符号。

ln (List Nearest Symbols)

ln命令显示给定地址处或附近的符号。

ln Address
ln /D Address

参数:

  • Address
    指定调试器开始搜索符号的地址。将显示最近的符号(地址之前或之后)。
  • /D
    指定使用调试器标记语言(DML)显示输出。DML输出包含一个链接,您可以使用该链接浏览包含最近符号的模块。它还包括一个链接,可用于设置断点。

可以使用ln命令来帮助确定指针指向什么。当您查看损坏的堆栈以确定哪个过程进行了调用时,此命令也很有用。如果源行信息可用,LN显示还包括源文件名和行号信息。如果使用的是源服务器,则ln命令将显示与源服务器相关的信息。

.copysym (Copy Symbol Files)

.copysym命令将当前符号文件复制到指定目录。

.copysym [/l] Path

参数:

  • /l
    使每个符号文件在复制时加载。
  • Path
    指定符号文件应复制到的目录。副本不会覆盖现有文件。

很多时候,符号存储在网络上。符号访问通常很慢,或者您可能需要将调试会话传输到不再具有网络访问权限的另一台计算机。在这种情况下,.copysym命令可用于将会话所需的符号复制到本地目录。

.symfix (Set Symbol Store Path)

.symfix命令自动将符号路径设置为指向Microsoft符号存储。

.symfix[+] [LocalSymbolCache]

参数:

  • +

    使Microsoft符号存储路径附加到现有符号路径。如果不包括此项,则替换现有符号路径。

  • LocalSymbolCache
    指定要用作本地符号缓存的目录。如果此目录不存在,则将在符号服务器开始复制文件时创建。如果省略localsymbolcache,则将使用调试器安装目录的sym子目录。

下面的示例演示如何使用.symfix设置指向Microsoft符号存储的新符号路径。

3: kd> .symfix c:\myCache
3: kd> .sympath
Symbol search path is: srv*
Expanded Symbol search path is: cache*c:\myCache;SRV*http://msdl.microsoft.com/download/symbols

下面的示例演示如何使用.symfix+将现有符号路径附加到指向Microsoft符号存储的路径。

3: kd> .sympath
Symbol search path is: c:\someSymbols
Expanded Symbol search path is: c:\somesymbols
3: kd> .symfix+ c:\myCache
3: kd> .sympath
Symbol search path is: c:\someSymbols;srv*
Expanded Symbol search path is: c:\somesymbols;cache*c:\myCache;SRV*http://msdl.microsoft.com/download/symbols

.symopt (Set Symbol Options)

.symopt命令设置或显示符号选项。

.symopt+ Flags
.symopt- Flags
.symopt

参数:

  • +
    使标志指定的符号选项被设置。如果.symopt与标志一起使用,但没有加号或减号,则假定为加号。
  • -
    使由标志指定的符号选项被清除。
  • Flags
    指定要改变的符号选项。Flags必须是这些符号选项的比特Flags的总和。

不带任何参数,.symopt显示当前符号选项。

.sympath (Set Symbol Path)

.sympath命令设置或更改符号路径。符号路径指定调试器查找符号文件的位置。

.sympath[+] [Path [; ...]]

参数:

  • +
    指定新位置将附加到(而不是替换)上一个符号搜索路径。
  • Path
    完全路径或完全路径的列表。多条路径用分号分隔。如果忽略路径,则显示当前符号路径。

当符号路径更改时,将不会加载新的符号信息。您可以使用.reload (Reload Module)命令重新加载符号。

!sym

这个扩展命令控制噪声符号加载和符号提示。

!sym
!sym noisy
!sym quiet
!sym prompts
!sym prompts off

参数:

  • noisy
    激活干扰符号加载。
  • quiet
    禁用干扰符号加载。
  • prompts
    允许在Symsrv收到身份验证请求时显示身份验证对话框。
  • prompts off
    当Symsrv接收到一个认证请求时,删除所有认证对话框。这可能导致SYMSRV无法访问因特网上的符号。

如果!sym符号扩展不带参数,显示噪声符号加载和符号提示的当前状态。这个!sym noisy和!sym quiet符号静音扩展控制噪声符号加载。这个!sym prompts和!sym prompts off控制当symsrv遇到身份验证请求时是否显示身份验证对话框。这些命令必须后跟.reload(重新加载模块)才能生效。身份验证请求可以由代理服务器、Internet防火墙、智能卡读卡器和安全网站发送。

!symsrv

关闭symbol服务器客户端。

!symsrv close

这个!symsrv close扩展将关闭任何活动的symbol服务器客户端。如果需要重新同步连接,这将非常有用。如果您以前拒绝过Internet身份验证请求,则需要使用!symsrv close可重新连接到符号存储。

原文地址:https://www.cnblogs.com/yilang/p/11468459.html

时间: 2024-08-29 10:32:48

WinDbg常用命令系列---符号相关命令的相关文章

Selenese 命令清单 - wait相关命令

点击链接加入群[悦分享测试联盟]:https://jq.qq.com/?_wv=1027&k=5DiePik 简介 Selenium为用户提供了大量的Selenese命令,可以非常方便的为用户编写脚本实用,其中实际场景运用需要的并不多,为了能更好的利用这些命令,我对几乎所有Selenese命令做了分类,分类内容如下: 包含操作页面元素常用命令,以及一些不常用到的高级使用命令 对鼠标键盘事件控制命令 wait相关命令 veriy相关命令 assert相关命令 store存储器相关命令 Part I

05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令

 Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表示取出所有的key 127.0.0.1:6379> keys * 1) "age" 2) "name" 3) "age2" 127.0.0.1:6379> keys a* 1) "age" 2) "age2&

Docker(二)——常用命令(镜像相关命令,容器相关命令:启动,拷贝,目录挂载,删除等等)

上一篇文章写的是Docker的安装和启动,启动了Docker我们可以进行镜像的安装了,镜像就是包含各种应用的操作系统. 一.镜像相关命令 1.搜索镜像 命令行的方式: docker search python #搜索关于python的镜像 在网站搜索: https://hub.docker.com/ #一般在网站上搜索方便看,搜索好之后再安装 搜索关于带python的Docker  2.下载镜像 docker pull centos:centos7.7.1908 #指定下载centos7.7.1

自动化运维工具Ansible实战(三)常用的配置和相关命令

Ansible默认安装好后有一个配置文件/etc/ansible/ansible.cfg,该配置文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码.是否开启sudo认证.action_plugins插件的位置.hosts主机组的位置.是否开启log功能.默认端口.key文件位置等等. 具体如下:     [defaults]     # some basic default values...     #inventory      = /etc/ansible/hosts

dos命令:网络相关命令

网络相关命令 一.Arp命令 1.介绍 ? 显示和修改地址解析协议(ARP)使用的"IP 到物理"地址转换表. 2.语法 ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] [-v] -a 通过询问当前协议数据,显示当前 ARP 项.如果指定 inet_addr,则只显示指定计算机 的 IP 地址和物理地址.如果不止一个网络接口使用 ARP,则显示每

常用linux下网络相关命令

说明:以下命令为Linux中常用的网络命令,适用于大多数Linux/Unix系统,少数系统可能会有差异.欢迎大家根据自己日常工作中的使用情况进行补充. 设置网络参数的命令:手动/自动配置IP参数与启动/关闭网络接口:ifconfig.ifup.ifdown修改路由:route网络参数综合命令:ip无线网络:iwlist.iwconfigDHCP客户端命令:dhclient网络排错与查看命令:主机间的两点沟通:ping主机间各节点分析:traceroute查看本机的网络连接与后门:netstat检

linux常用命令-2网络相关命令

1.ip  [选项]  操作对象{link|addr|route...} ip addr show #显示网卡IP信息 2.修改IP配置 1)     root权限 2)     cd /etc/sysconfig/network-scripts/ #进入网络配置文件目录 3)     ls #查看目录下所有文件 4)     vi命令打开ifcfg-enp4s0(具体看实际文件名)文件,输入命令i手动添加ipaddr0=Ip地址,GATWAY0=网关.DNS1=DNS,然后Esc,:wq命令保

PS AD命令系列 之new-adcomputer命令!

?? New-adcomputer和new-aduser 主要是对象的不同,Adcomputer是活动目录的计算机对象,而aduser 是用户. 计算机的对象相对有比较少的对象,当我们创建计算机对象的时候就没有需要特别多一些属性设置,所以创建起来也非常简单. 我们先来个简单的场景,就是在OU名称为IT的下面创建计算机名称为xupengComputer1的对象,我们执行下面的命令就可以创建了: New-adcomputer-name xupengcomputer1 -path "ou=it,dc=

[ SHELL编程 ] 编程常用的ORACLE相关命令

本文主要描述shell编程中常用的Oracle相关命令. 1.sqlplus -L/-S参数 sqlplus -L user/password #-L参数表示用户只尝试登录一次, 而不是在出错时再次提示,可判断用户/密码是否正确 sqlplus -S user/password #-S表示设置无提示模式,常用 2.set相关命令 set timing on #显示SQL语句的运行时间.默认值为OFF.可用于性能分析SQL执行效率. set autotrace on #允许对执行的SQL进行分析