首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >WinDbg条件断点在.NET GC之后

WinDbg条件断点在.NET GC之后
EN

Stack Overflow用户
提问于 2020-04-23 09:36:00
回答 1查看 68关注 0票数 0

我在GC循环结束时设置一个条件断点。

程序中断,但它不能评估GcCondemnedGeneration变量,因此程序在每个GC周期上中断,而不管实际收集的生成是什么。

这是断点命令:

代码语言:javascript
代码运行次数:0
运行
复制
> bp clr!ThreadSuspend::RestartEE ".if @@(clr!SVR::GCHeap::GcCondemnedGeneration==2) {kb} .else {g}"

当断点断裂时,这就是我得到的:

代码语言:javascript
代码运行次数:0
运行
复制
Type information missing error for SVR::GCHeap::GcCondemnedGeneration
Couldn't resolve error at 'clr!SVR::GCHeap::GcCondemnedGeneration==2) {kb} .else {g}'
clr!ThreadSuspend::RestartEE:
00007fff`145d5dfc 488bc4          mov     rax,rsp

我试过各种各样的变体,但都失败了。

计算机上安装的.Net版本为4.6.1。

我的程序使用服务器gc运行。

成功加载了clr.dll符号。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 11:22:34

我能够使它在不使用C++表达式语法和MASM表达式的情况下工作(其中dwo用于解除DWORD大小的数据(如unsigned int)):

代码语言:javascript
代码运行次数:0
运行
复制
bp clr!ThreadSuspend::RestartEE ".if (poi(clr!SVR::GCHeap::GcCondemnedGeneration)==2) {kb} .else {g}"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61383952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档