首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

弄清楚为什么WinDBG处于“忙”状态?

WinDBG是一款由微软开发的调试工具,用于分析和调试Windows操作系统和应用程序。当WinDBG处于"忙"状态时,通常是由于以下原因:

  1. 调试器正在执行某个调试操作:当WinDBG正在执行某个调试操作,例如断点调试、内存分析、堆栈跟踪等,它会处于"忙"状态。在这种情况下,需要等待调试操作完成后,才能继续执行其他操作。
  2. 调试器正在等待目标程序响应:当WinDBG连接到目标程序进行调试时,如果目标程序处于等待输入或执行某个操作的状态,调试器会等待目标程序响应。在这种情况下,WinDBG会显示为"忙"状态,直到目标程序响应或超时。
  3. 调试器正在加载符号文件:符号文件包含了程序的调试信息,用于在调试过程中进行符号解析和源代码查看。当WinDBG加载符号文件时,它会处于"忙"状态。加载符号文件可能需要一些时间,特别是对于大型程序或复杂的调试场景。
  4. 调试器正在执行扩展命令或脚本:WinDBG支持使用扩展命令或脚本进行自定义的调试操作。当调试器执行扩展命令或脚本时,它会处于"忙"状态。执行扩展命令或脚本可能需要一些时间,特别是对于复杂的操作或大量数据的处理。

总之,WinDBG处于"忙"状态通常是由于调试器正在执行某个调试操作、等待目标程序响应、加载符号文件或执行扩展命令。在这些情况下,需要耐心等待操作完成或响应返回。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IE 11浏览器0day漏洞(CVE-2015-2425)UAF分析

把IE11附加到windbg上,然后运行poc.html,IE11崩溃到一个无法读取的地址: ?...windbg+IDA分析 由于崩溃在一个不可访问的地址,不好确定之前的指令,这时需要用到与栈回溯相关的命令,就是windbg中的k一系列命令: ?...为了看到函数是怎么调用的,需要用到.frame命令,使用.frame /c 1回到崩溃栈的第一层,也就是上层函数调用时的状态: ?...弄清楚后我们回到崩溃点所在的函数内,选择在call [ebp-1Ch]处下断点,断点会多次触发,触发5次后,停下,步入函数看: ?...那我们要找到这段内存是如何释放的,还是回到63e06cd7断点处,这次不进入函数,步过后那段内存并没有被释放,为了弄清楚在哪里被释放,给this指针和那段uaf的内存下访问断点: ?

1.3K70

Windows程序Dump收集

前面一篇写过《Windbg调试----Windbg入门》,可能不少新手会问,我在本地用Visual Studio去做调试就行了,为什么还需要那么抽象的Windbg去进行调试呢?...这个时候需要借助程序dump来做进一步的分析,进程的dump主要就是指当前运行进程的状态保存到一个文件,主要包含有进程相关的信息,比如当前函数调用栈,堆,线程运行时间等。...这样可以分析dump,查看程序运行时的状态,比如查看死锁问题。 使用procdump 很多时候安装adplus需要安装windbg或者WDK不是很方便,也可以直接使用procdump这个工具。...如果设置了Windbg作为JIT调试器,则程序出现crash的情况,将自动弹出windbg attach到程序的异常位置。...利用了Windbg安装包中的ntsd(cdb也同样可以)。

1K50
  • 记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)

    为什么没有信心处理这个问题 原因非常简单,这个问题是间歇性的,不容易重现的,只会在项目启动时有一定的可能性会发生CPU跑满的问题。...2.后来记得有用过WinDbg解决过电脑蓝屏的问题,就猜想是否可以抓取对应w3wp进程的dump进行分析。 使用WinDbg查找线索 1.由于服务器是2008R2抓取dump就变得异常简单。 ?...,为什么Add一个项目会造成堵塞?...当前有多少个线程发生了这种状态,如果发生这种状态的线程越多则代表cpu占用越多。...写在最后 由于一开始不会使用WinDbg找了技术群里的StevenChen帮忙解决问题,巧合的是两人推测出的问题在此相撞,在这里感谢下StevenChen。

    1.1K50

    win10 uwp 使用 WinDbg 调试

    本文告诉大家如何用 WinDbg 调试 UWP 应用,使用 WinDbg 调试是在没有其他手段的时候才进行的调试,因为调试难度特别大。...我最近因为发现有 Edge 和其他 UWP 程序打不开的问题,然而我没有 Edge 和其他 UWP 的源代码,于是我只能通过 WinDbg 去调试 UWP 程序 找到工具 请不要在网上去下载 WinDbg...windbg 是不提供命令行的,此时就需要让 windbg 进入调试,这样才能输入命令 打开 WinDbg 程序,随意附加到一个可以附加的进程,例如 QQ 程序,这时可不要选 DWM 或 Explorer...调试,如果你好奇为什么,那么请保存好你的所有代码,然后附加一下 附加到任意的进程是为了可以在 Windbg 里面输入命令,附加之后点击暂停 这样就可以在命令行输入内容了 输入 .querypackages...挂起应用 有一些 UWP 程序在调试过程就 gg 了,一个可以使用的方法是在进行符号加载的时候先将他挂起 在 UWP 运行的时候,有以下状态 suspend 和 resume 详细请看 Windows

    87310

    探索Linux下进程状态 | 僵尸进程 | 孤儿进程

    这两个程序刚刚都是运行,为什么第一个代码是S状态(休眠状态)呢? 休眠状态本质上是程序什么都没有做,这叫做休眠状态,但是刚刚一直在打印内容,说是什么都没做,好像有点不对。...,可以使用指令kill -19 进程的pid来让进程处于停止状态 T/t状态:让进程处于暂停状态。...进程在等待磁盘反馈,操作系统后,的不可开交,看到这个进程:“你干嘛呢?我快忙死了,我快要崩溃了,一旦我崩溃你可知后果??”,操作系统生气了,一气之下把这个进程干掉了,释放了这个进程的内存资源。...上述代码中,子进程执行完五次后,就处于Z状态并且后面跟了一个,该单词有不存在的意思,只不过还等待父进程来回收它的资源。处于Z状态的进程的相关资源不能被释放。...getppid()); sleep(1); } } return 0; } 父进程结束后,只剩下子进程,为什么父进程不会处于僵尸进程

    13710

    同步

    背景 一~八章的内容到目前位置: 多道程序设计: 现代操作系统的重要特性 并行很有用(为什么?)...**互斥(Mutual exclusion): **是指当一个 进程处于临界区并访问共享资源时,没有其他进程会处于临界区并且访问任何相同的共享资源 死锁(Dead lock):是指两个或以上进程,在相互等待完成特定任务...,而最终没法将自身任务进行下去 **饥饿(Starvation):**是指一个可执行的进程,被调度器持续忽略,以至于虽然处于可执行状态却不被执行 **有限/无 等待: **如果一个线程i处于入口区,那么在...大多数现代计算机体系结构都提供指令来完成 进入临界区 禁用中断 离开临界区 开启中断 一旦中断被禁用,线程就无法被停止 整个系统都会为你停下来 可能导致其他线程处于饥饿状态 要是临界区可以任意长怎么办...无等待

    9110

    高效设计师和瞎忙设计师的区别!

    设计师作为加班较多甚至偶尔需要通宵的职业,工作效率真的特别重要,但是,你到底在什么?为什么你总是处于通宵加班工作中?为什么周末连陪伴家人的时间都没有?为什么你宁愿每周如此多的时间?...拒绝“负能量”,不等于高效! 总是会有很多同事抱怨:“唉,总是加班”、“工作这么多,什么时候才能干完”… 看似你一直处于忙碌状态,但是内心已经被职场负能量所占据。...“”和“高效”之间确实存在着很大的不同。虽然你一直是忙碌的,但是真正完成的却寥寥无几。 其实,一个人的工作是否高效,不是看你做了多少工作,而是看你“完成”了多少工作。...如果在任务量多的情况下,抱着极大的负能量去工作,就会更加影响自己的工作状态。 工作中问对问题很重要。 很多人在工作中属于埋头苦干型,却往往错误的完成工作,所以在工作中问对问题再去工作很重要。

    63880

    【计算机网络】数据链路层 : CSMA 协议 ( 载波监听多路访问协议 | 监听 | 1-坚持 CSMA | 非坚持 CSMA | p-坚持 CSMA )

    : 推迟发送 ; 根据监听结果 , 有如下不同的处理方案 : 1-坚持 CSMA 非坚持 CSMA p-坚持 CSMA 三、 1-坚持 CSMA ---- "坚持" 概念 : 监听信道后 , 信道处于状态..., 之后的 “坚持” 监听操作 ; "1-坚持 CSMA" 运行机制 : ① 信道监听 : 如果 主机 想要发送消息 , 先监听信道 ; ② 信道空闲 : 直接传输 ; ③ 信道 : 一直监听 ,...信道利用率高 , 只要信道空闲 , 站点就可以发送数据 ; ② 缺点 : 如果有 多个 站点要发送数据 , 就会发生冲突 ; 四、 非坚持 CSMA ---- "非坚持" 概念 : 监听信道后 , 信道处于状态..., 之后的 “不再坚持” 监听操作 ; "1-坚持" 和 “非坚持” 都是针对信道时的处理 ; "非坚持 CSMA" 运行机制 : ① 信道监听 : 如果 主机 想要发送消息 , 先监听信道 ; ②...② 缺点 : 可能存在所有站点都在等待的场景 , 此时信道处于空闲状态 , 信道利用率降低 ; 五、 p-坚持 CSMA ---- "p-坚持" 概念 : 监听信道后 , 信道处于空闲状态 的处理 ;

    1.5K11

    Windows应用程序调试原理全景图

    探索调试器下断点的原理 在Windows上做开发的程序猿们都知道,x86架构处理器有一条特殊的指令——int 3,也就是机器码0xCC,用于调试所用,当程序执行到int 3的时候会中断到调试器,如果程序不处于调试状态则会弹出一个错误信息...为什么int 3可以让程序中断到调试器呢?没有调试运行的时候,遇到int 3又怎么出现程序崩溃呢?使用VS调试时F9下的断点是如何工作的?使用WinDbg的bp下的断点是如何工作的?...如果当前进程没有处于调试状态,或者调试子系统没有对该异常进行处理,那么将进行第二步。 第二,提交给Ring3的ntdll!...对于一个处于调试状态的进程来说,异常发生时,首先得到通知的是调试器,如果调试器未处理异常,那么将进入第二步,比如通过结构化异常处理进入你的__except处理分支。...如果当前进程没有处于调试状态,那么进程的EPROCESS中的DebugPort字段将为NULL,nt!DbgkForwardException()在发现其为空后将直接返回。不再继续进行异常消息的传递。

    1.3K20

    如何应对核心员工提离职?

    为什么会离职? 为什么环境这么差,还有人会主动离职?因为环境再差,总有一些企业还在招人,越是对能力要求高的岗位,越难招。所以,那些真正优秀的人才是不用担心工作问题的。...你想要挽回对方,首先得弄清楚对方离职的原因。不过这种时候,大概率已经找我下家了。 PS:绝不建议大家裸辞,除非你是准备离职后休息两月。但就算要休息两月,也记得找人把社保交了,别断社保哈。...我问:“那为什么不在现在公司里就调整下工作时间呢?” 他说:"公司这么,我要这么做,老板估计也会开了我的"。 我反问说:“你都要离职了,还怕他辞退啊” 就这样过了一年,对方也没离职,工作也没耽误。...你可以说自己很忙,但再怎么,都要抽出时间来关注这些核心员工。不仅仅是工作状态,还有家庭状态。你要是真关心员工,什么问题都好解决。 2. 把核心员工跟项目收益做强绑定,增加离职成本。...我投资 核心员工如果愿意舍弃这么好的收益去创业,那么作为公司为什么就不能参与进去呢?既然挡不住,那我就不挡了。我大大方方地把投资方案公布出来。你想离职创业?

    64800

    面试题98:说一下synchronize实现原理

    如果要挂起或者唤醒一个线程,都需要操作系统帮忙完成,而操作系统实现线程之间的切换时需要从用户态转换到内核态,这个状态之间的转换需要相对比较长的时间,时间成本相对较高,这也是为什么早期的 synchronized...每个synchronized修饰过的代码当它的monitor 被占用时就会处于锁定状态并且尝试获取monitor的所有权,过程如下所示: 如果monitor的进入数为0,则该线程进入monitor,然后将进入数设置为...---- 【为什么采用自旋而不是等待】 很多synchronized里面的代码只是一些很简单的代码,执行时间非常快,此时等待的线程都加锁可能是一种不太值得的操作,因为线程阻塞涉及到用户态和内核态切换的问题...什么是循环? 就是用循环让一个线程等待,不像传统方法wait()、sleep()或yield(),它们都放弃了CPU控制,而循环不会放弃CPU,它就是在运行一个空循环。...在这种状态下,Java虚拟机会阻塞加锁失败的线程,并且在目标锁被释放的时候,唤醒这些线程。

    28250

    lcd1602模块的基本组成_1602液晶显示模块P0口

    Lcd1602的指令主要有以下几种: 驱动程序 实物模块驱动程序 根据这些指令,我们可以选择性地往LCD1602A的寄存器内写控制命令控制命令、读取状态或者显示内容,下面是基于51单片机的部分必要的...***************************************************/ #define LCD_Data P0 #define Busy 0x80 //用于检测LCD状态字中的...Busy标识 上面代码是反映了单片机与LCD1602硬件连接的逻辑,最后一行应特别注意,最后一行定义了一个字节的数据,用于辅助判断LCD是否处于状态(检测这一状态十分重要,因为LCD处于状态是无法再响应别的单片机的要求的...,所以基本上上面指令表的每一个操作进行前都要先检测LCD是否处于空闲状态),其具体实现代码如下: /***********写数据*************************************...void) { LCD_RS = 1; LCD_RW = 1; LCD_E = 0; LCD_E = 0; LCD_E = 1; return(LCD_Data); } /***********读状态

    88230
    领券