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
复制代码
相关推荐
怪兽软家13 小时前
DaVinci Resolve/达芬奇 20安装教程及下载
windows·经验分享·生活
chao18984413 小时前
完整MES系统实现 (C# 客户端服务器)
服务器·windows·c#
Hello_Embed15 小时前
Windows 安装 Claude Code 并接入 模型
windows·笔记·ai编程
Muyuan199815 小时前
28.Paper RAG Agent 开发记录:修复 LLM Rerank 的解析、Fallback 与可验证性
linux·人工智能·windows·python·django·fastapi
AxureMost16 小时前
4DDiG DLL Fixe 1.0.8.2 系统DLL修复工具
windows
怣疯knight18 小时前
Windows不安装 Android Studio如何打包安卓软件
android·windows·android studio
空中海19 小时前
02. 静态逆向、Manifest 分析与 Smali 重打包
服务器·网络·windows
一拳一个娘娘腔19 小时前
告别图形化界面:基于CLI的Windows系统入侵排查与防御实战手册
windows·安全
疋瓞20 小时前
批处理_基础补充、文件和文件夹处理_02
windows
nudt_qxx21 小时前
Ubuntu 24.04/26.04 与 Windows 10/11 双系统时间不同步终极解决方案
windows·stm32·ubuntu