WinDbg命令

WinDbg官方文档

  1. 设置源代码路径:

    shell 复制代码
    .srcpath C:\SourceCode
    .srcpath C:\SrcPath1;C:\SrcPath2
  2. 附加源代码代码路径:

    shell 复制代码
    .srcpath+ C:\SourceCode
    .srcpath+ C:\Qt\SourceCode
  3. 设置符号的语法相同,对应命令:

    shell 复制代码
    .sympath
    .sympath+

    符号可以设置远程服务器

  4. 下断点:

    shell 复制代码
    bp `main.cpp:100`
  5. 列出断点:

    shell 复制代码
    bl
  6. 打开源代码文件:

    推荐用-a指定模块来打开文件

    shell 复制代码
    .open -a MyModule!main

    或者得输入完整路径

    shell 复制代码
    .open D:\SourceCode\main.cpp
  7. 断点删除/禁用

    1. 清除所有断点

      shell 复制代码
      bc *	
    2. 清除特定断点

      shell 复制代码
      bc <断点ID>
    3. 禁用所有断点(不删除,后续可通过be *重新启用)

      shell 复制代码
      bd *
    4. 设置的断点会被保存到工作空间,即使清除后重新加载工作空间仍会恢复,需通过bc *再次清\除

      shell 复制代码
      bu

.excr(显示异常上下文记录)

.call(调用函数)

?? (计算 C++ 表达式)


启动命令行

shell 复制代码
WindbgX.exe /?

/accepteula - Accepts the End User License Agreement.
/c - Executes a command line after the debugger is attached.
/logo - Begins logging information to a log file. If the file exists, it will be overwritten.
/loga - Begins logging information to a log file. If the file exists, it will be appended to.
/e - Signals the event with the given handle after the next exception in a target.
/v - Enables verbose output in the debugger.
/Q - Deprecated command-line option.
/QY - Deprecated command-line option.
/QS - Deprecated command-line option.
/QSY - Deprecated command-line option.
/WX - Deprecated command-line option.
/sflags - Sets all the symbol handler options at once.
/sdce - Causes the debugger to display 'File access error' messages during symbol load.
/ses - Causes the debugger to perform a strict evaluation of all symbol files and ignore any questionable symbols.
/sicv - Causes the symbol handler to ignore the CV record.
/sins - Causes the debugger to ignore the symbol path and executable image path environment variables.
/snc - Causes the debugger to turn off C++ translation.
/snul - Disables automatic symbol loading for unqualified names.
/sup - Causes the symbol handler to search the public symbol table during every symbol search.
/n - Enables verbose output from symbol handler.
/y - Specifies the symbol path to use.
/i - Sets the image search path to use.
/premote - Connects to a process server (dbgsrv) that is already running.
/p - Specifies the decimal process ID to be debugged.
/tid - Specifies the thread ID of a thread to be resumed when the debugging session is started.
/psn - Specifies the name of the service contained in the process to be debugged. This is used to debug a process that is already running.
/pn - Specifies the name of the process to be debugged.
/z - Specifies the name of a crash dump file to debug.
/openPrivateDumpByHandle - Specifies the handle of a crash dump file to debug.
/remote - Connects to a debugging server that is already running.
/server - Creates a debugging server that can be accessed by other debuggers.
/plmPackage - Specifies the package name to launch
/plmApp - Specifies the packaged app name to launch
/debugArch - Specifies the target bitness for the debugger.
/targetArch - Specifies the architecture to use for the target when multiple are available.
/o - Debugs all processes launched by the target application (child processes).
/g - Ignores the initial breakpoint in target application.
/G - Ignores the final breakpoint in target application.
/pv - Specifies that the debugger should attach to the target process noninvasively.
/hd - Specifies that the debug heap should not be used.
/cimp - Specifies that any processes created will use an implicit command-line set by the server instead of a user-given command-line string from the client.
/T - Sets the window title.
/benchmarkStartup - Runs a startup benchmark and appends the result to a file.
/x - Enable second-chance handling only for access violation exceptions.
/xe - Enable first-chance exception handling for the specified exception.
/xd - Enable second-chance exception handling for the specified exception.
/xn - For the given exception, disable first- and second-chance-handling, and only display a message on the console.
/xi - Completely ignore the given exception, disabling first- and second-chance handling, and not outputing anything to the console.
/k - Starts a kernel debugging session.
/d - After a reboot, the debugger will break into the target computer as soon as a kernel module is loaded.
/kqm - Starts KD in quiet mode.
/kl - Starts a kernel debugging session on the same machine as the debugger.
/kx - Starts a kernel debugging session using an EXDI driver.
/bonc - Break on connection to a kernel debugging connection.
/nobonc - Don't break on connection to a kernel debugging connection.
/srcpath - Specifies the source path to use.
/lsrcpath - Specifies the source path to use.
/I - Sets WinDbgNext as the default post-mortem debugger for the system.
/IS - Sets WinDbgNext as the default post-mortem debugger for the system silently, with only errors being reported.
/? - Displays a summary of commands available.
/setupFirewallRules - Configures the required firewall rules on the local system to allow kernel debugging.
/setupFirewallRulesQuietly - Configures the required firewall rules on the local system to allow kernel debugging, and then exit.
/EnableUsbPowerManagement - Enable selective suspend and allow OS power management of USB controllers/hubs
/DisableUsbPowerManagement - Disable selective suspend and allow OS power management of USB controllers/hubs
复制代码
相关推荐
军训猫猫头33 分钟前
9.IEnumerable可枚举接口 C#例子 WPF例子
windows·microsoft·c#
默|笙5 小时前
【c++】STL-容器 list 的实现
c++·windows·list
Franciz小测测5 小时前
MariaDB 10.4.34 安装配置文档(Windows 版)
数据库·windows·mariadb
运维开发王义杰8 小时前
告别手动迁移:使用 PowerShell 一键导出 IIS 配置,让服务器迁移更轻松
运维·服务器·windows
专注VB编程开发20年8 小时前
探索VB.NET中的贝塞尔Bezier曲线绘制技巧
图像处理·windows·.net·vb.net
funnycoffee12313 小时前
Windows批处理实现带时间戳ping
windows·ping with time
随风ada15 小时前
Windows、macOS、liunx下使用qemu搭建riscv64/linux
linux·windows·ubuntu·macos·golang·qemu·risc-v
小卡不对头15 小时前
电脑截图软件排行榜 Windows和mac电脑截图软件TOP10
windows·macos·电脑·笔记本电脑·贴图
大龄门外汉18 小时前
CPP学习之list使用及模拟实现
windows·学习·list