wesom 发表于 2009-5-20 11:25:06

如何打印某个线程崩溃时的栈信息,大家有什么好方法

如题,是否可以利用WIN32_STRUCTURAL_EXCEPTIONS结构化异常处理,或者是线程专属存储?
望大家不吝赐教:)

winston 发表于 2009-5-20 11:49:51

有办法。
老早就用过。
给你一篇文章看看就知道了。

winston 发表于 2009-5-20 11:50:56

http://www.codeproject.com/KB/debug/XCrashReportPt1.aspx

wesom 发表于 2009-5-20 14:57:11

very good,thx

wesom 发表于 2009-5-20 15:29:22

呵呵,我的原意是这样:
譬如Server有n个线程,现在有个线程死掉了,它死的时候未释放锁资源,导致其他线程block。
为了找到那个down点,我想catch住所有线程入口到exit过程中的非正常异常,并在catch时打印线程当时的栈信息
问题是现场的栈信息如何打印出来。。。还要是友好点的如果是EIP类的,看起来很不方便
现在正在研究ACE_OS_Object_Manager::seh_except_selector(),
            ACE_OS_Object_Manager::seh_except_handler()
不知道有没有较大帮助

winston 发表于 2009-5-20 22:46:10

与其这样,你不如自己仔细排查程序的问题,避免这种情况发生。
比如线程crash的时候,使用SEH等措施,强制回收锁资源,就可以防止影响其它处理了。
页: [1]
查看完整版本: 如何打印某个线程崩溃时的栈信息,大家有什么好方法