|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
你的软件在某个时刻停止服务,CPU占用达到100%+,这种问题一个可能的原因是产生了死循环,假设程序某处存在潜在的死循环,并在某种条件下会引发,本文以一个示例来定位出现死循环的位置。8 O( M, I+ `9 K" @' n
当程序某处存在死循环,通常定位问题及缩小范围的方法是,在可疑的代码处加log,或者注释掉可疑代码,这对于容易重现问题的程序来说还好,但对于“偶尔”才会产生问题程序却很难调试,因为我们很难重现程序故障。本文所述的调试过程正是在这种情况下,假设问题已经出现,我们要求环境保护现场,即出问题的程序还在运行中。( m b' W) b. Q: T6 s* v
+ E5 Y1 v$ k4 Z. S; {: F/ l! g
1.我们首先要知道是哪个线程出了问题:! J8 d; c( n0 N" t. E- y3 t! m
, Y4 r& @% Q/ @3 k% A) l
, P, h; t* a/ h3 T' l0 L6 D; e& k7 Z" g& N( i
|
|