mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-21 12:53:23 +08:00
[0.3.x] added : fixed probably deadlock in breakpoint::remove method
git-svn-id: https://pykd.svn.codeplex.com/svn@89579 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
1f8b79e6c4
commit
cc27289a55
@ -462,6 +462,7 @@ Breakpoint* Breakpoint::getBreakpointByIndex(unsigned long index)
|
||||
|
||||
void Breakpoint::remove()
|
||||
{
|
||||
AutoRestorePyState pystate;
|
||||
m_breakpoint->remove();
|
||||
m_breakpoint = 0;
|
||||
}
|
||||
|
@ -114,6 +114,7 @@ class BreakpointTest( unittest.TestCase ):
|
||||
|
||||
self.assertEqual( 1, handler.count )
|
||||
|
||||
|
||||
def testBreakpointClass(self):
|
||||
|
||||
class MyBreakpoint(pykd.breakpoint):
|
||||
@ -165,7 +166,6 @@ class BreakpointTest( unittest.TestCase ):
|
||||
bp = pykd.setBp( targetModule.CdeclFunc, makebpcallback(100) )
|
||||
self.assertEqual( pykd.executionStatus.NoDebuggee, pykd.go() )
|
||||
|
||||
|
||||
def testBreakpointEnum(self):
|
||||
processId = pykd.startProcess( target.appPath + " breakhandlertest" )
|
||||
targetModule = pykd.module( target.moduleName )
|
||||
@ -183,3 +183,19 @@ class BreakpointTest( unittest.TestCase ):
|
||||
map( lambda bp: bp.remove(), bpLst)
|
||||
self.assertEqual(0, pykd.getNumberBreakpoints());
|
||||
|
||||
def testBreakpointChangeHandler(self):
|
||||
|
||||
class BreakpointChangeHandler( pykd.eventHandler ):
|
||||
|
||||
def onChangeBreakpoints(self):
|
||||
pass
|
||||
|
||||
processId = pykd.startProcess( target.appPath + " breakhandlertest" )
|
||||
targetModule = pykd.module( target.moduleName )
|
||||
targetModule.reload()
|
||||
with testutils.ContextCallIt( testutils.KillProcess(processId) ) as killStartedProcess :
|
||||
pykd.go()
|
||||
handler = BreakpointChangeHandler()
|
||||
bp = pykd.setBp( targetModule.CdeclFunc)
|
||||
bp.remove()
|
||||
self.assertEqual(0, pykd.getNumberBreakpoints())
|
||||
|
Loading…
Reference in New Issue
Block a user