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
复制代码
相关推荐
这儿有一堆花19 小时前
用原生脚本编写无害恶作剧
windows
因我你好久不见19 小时前
Windows部署springboot jar支持开机自启动
windows·spring boot·jar
夜流冰19 小时前
Excel - MS Support for Excel: 2 Collaborate
数据库·windows·excel
林瞅瞅20 小时前
PowerShell 启动卡顿?内存飙升?原来是 800MB 的历史记录在作祟!
windows
Shepherd061920 小时前
【Windows Server 实战】WAC 反向代理配置
windows
云小逸21 小时前
【windows系统编程】第一章 Windows 系统核心架构与基础概念
windows·架构
怣疯knight1 天前
Docker Desktop 4.55.0版本安装成功教程
windows·docker
liulilittle1 天前
VEthernet 框架实现 tun2socks 的技术原理
网络·windows·c#·信息与通信·通信
独钓寒江雨1 天前
win11在安全模式下删除360tray.exe
windows·电脑
PieroPc1 天前
Windows 远程到 PVE 9.X Mac os (像window远程桌面)
windows·mac·远程桌面