1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
/*
FALCON - The Falcon Programming Language.
FILE: debug.cpp
Falcon debugging system.
-------------------------------------------------------------------
Author: Paul Davey
Begin: Thur, 26 Nov 2009 06:08:00 +1200
-------------------------------------------------------------------
(C) Copyright 2004: the FALCON developers (see list in AUTHORS file)
See LICENSE file for licensing details.
*/
#include <falcon/debug.h>
namespace Falcon
{
DebugVMachine::DebugVMachine() : VMachine(),
m_breakPoints( Map( &traits::t_voidp(), &traits::/*t_MapPtr*/t_voidp() ) ),
m_watches( Map( &traits::t_string(), &traits::t_voidp() ) ),
m_step(false), m_stepInto(false), m_stepOut(false)
{
callbackLoops(1);
}
void DebugVMachine::setBreakPoint(Symbol* func, int32 lineNo)
{
MapIterator iter;
Map *lines;
if ( !m_breakPoints.find( static_cast<void*>( func ), iter) )
{
lines = new Map(&traits::t_int(),&traits::t_voidp());
m_breakPoints.insert(static_cast<void*>( func ),static_cast<void*>( lines ));
}
else
{
lines = static_cast<Map*>( iter.currentValue() );
}
//lines.
}
const Map& DebugVMachine::watches() const
{
return m_watches;
}
const ItemArray& DebugVMachine::stackTrace() const
{
return stack();
}
void DebugVMachine::periodicCallback()
{
m_opNextCheck = m_opCount + 1;
}
} //end namespace Falcon
|