windows - Windbg,如何在特定进程上设置方法断点
问题描述
我已经VirtualKD
安装了驱动程序并附加到运行在主机上的windbg 的虚拟机。
到目前为止,我已经通过以下方式切换到所需的进程上下文,设法在用户空间进程上设置断点:
# get procID
!process 0 0 myproc.exe
# use procID to switch context
.process /i <procID>
# continue till scheduler context switch to the desired process
g
# set break point on process' context (symbols should be visible)
...
这里的问题是该进程必须已经可用(否则我们将无法获得它的上下文)。
也许有一种更简单的方法可以在断点命令中声明进程名称,并能够等待进程出现?
编辑 :
发现sxe ld myproc.exe
我可以在进程加载时获得断点。但是,在这个阶段,并不是所有的库都被加载,所以我不能在他们的方法上设置断点。当库 x.dll 在进程 myproc.exe 中加载时,也许有一种方法可以更好地引起注意?
解决方案
放入__debugbreak()
您的代码中。编译。复制到虚拟机。运行附加了调试器的 exe。一旦你的代码命中__debugbreak
,它会打破你windbg
。
推荐阅读
- python - 运行 pyinstaller 可执行文件时出现 FileNotFoundError [Errno 2]?
- java - 无法使用 AWSIotMqttManager 和 Aws Cognito 凭证连接到 Aws Iot
- javascript - 如何在 Javascript 中实现这个 C++ 模式?
- gitlab - 有没有办法镜像 Gitlab 内置的错误跟踪内容?
- sql - 打印(选择)学生表中的学生ID,学生姓名,其中任何两门科目的分数大于90(共6门)
- walmart-api - 收据 API 可用性?
- c++ - 指针范围问题和指针在类中封装的指针向量内的返回引用
- javascript - 单击我网站上的 href 链接后如何访问其他页面的元素?
- python-3.x - Can I break values into buckets?
- php - 无法使用 PHP 在 Azure blob 容器上上传 wav 文件