level 1
BinaryGhost
楼主
我的链路里使用了很多filter,程序调试时如果有异常退出,系统自带的filter都可以顺利的自己卸载,只有我写的filter经常会卡住释放不了。当然正常使用时显式Release没问题,对照资料实在不知道是哪里问题。 我的是用Dump例子修改的,filter使用了一个自己定义的接口,功能是从外部主函数取得一个链表头指针,然后在CDumpInputPin::Receive将由摄像头取数据循环写链表。
我只知道是异常退出时,有资源没有自动释放,但是没有手段定位错误。 而且加断点在析构函数里,弹出错误时根本还没有调用析构函数。断点出发直接跳到wxdebug里面选继续就会出现下面的调试信息。
线程 'Win32 线程' (0x12c0) 已退出,返回值为 0 (0x0)。
simpletestb.exe 已触发了一个断点
Dump2Buf.dll(tid 488) 77799 :
Dump2Buf.dll(tid 488) 77799 : ID Object Description
Dump2Buf.dll(tid 488) 77800 :
Dump2Buf.dll(tid 488) 77800 : 48 (0033E718) Dump2Buf Pass Through
Dump2Buf.dll(tid 488) 77801 : 44 (0033E718) Dump2Buf Pass Through
Dump2Buf.dll(tid 488) 77801 : 15 (0033E718) CDumpInputPin
Dump2Buf.dll(tid 488) 77802 : 14 (0033E718) CDumpFilter
Dump2Buf.dll(tid 488) 77802 : 13 (0033E718) CDump
Dump2Buf.dll(tid 488) 77802 : 4 (0033E718) CDumpInputPin
Dump2Buf.dll(tid 488) 77803 : 3 (0033E718) CDumpFilter
Dump2Buf.dll(tid 488) 77803 : 2 (0033E718) CDump
Dump2Buf.dll(tid 488) 77804 :
Dump2Buf.dll(tid 488) 77804 : Total object count 8
2011年09月24日 04点09分
1
我只知道是异常退出时,有资源没有自动释放,但是没有手段定位错误。 而且加断点在析构函数里,弹出错误时根本还没有调用析构函数。断点出发直接跳到wxdebug里面选继续就会出现下面的调试信息。
线程 'Win32 线程' (0x12c0) 已退出,返回值为 0 (0x0)。
simpletestb.exe 已触发了一个断点
Dump2Buf.dll(tid 488) 77799 :
Dump2Buf.dll(tid 488) 77799 : ID Object Description
Dump2Buf.dll(tid 488) 77800 :
Dump2Buf.dll(tid 488) 77800 : 48 (0033E718) Dump2Buf Pass Through
Dump2Buf.dll(tid 488) 77801 : 44 (0033E718) Dump2Buf Pass Through
Dump2Buf.dll(tid 488) 77801 : 15 (0033E718) CDumpInputPin
Dump2Buf.dll(tid 488) 77802 : 14 (0033E718) CDumpFilter
Dump2Buf.dll(tid 488) 77802 : 13 (0033E718) CDump
Dump2Buf.dll(tid 488) 77802 : 4 (0033E718) CDumpInputPin
Dump2Buf.dll(tid 488) 77803 : 3 (0033E718) CDumpFilter
Dump2Buf.dll(tid 488) 77803 : 2 (0033E718) CDump
Dump2Buf.dll(tid 488) 77804 :
Dump2Buf.dll(tid 488) 77804 : Total object count 8