winIDEA SDK
Loading...
Searching...
No Matches
isys::CDebugFacade Class Reference

This class is a facade for few other classes. More...

#include <CDebugFacade.h>

Public Member Functions

std::string call (const std::string &functionName)
 See documentation of CExecutionController#call(const std::string &).
 CDebugFacade (std::shared_ptr< ConnectionMgr > connectionMgr)
 Instantiates object.
int deleteAll ()
 See documentation of CBreakpointController#deleteAll().
int deleteAllHWBP ()
 See documentation of CBreakpointController#deleteAllHWBP().
int deleteBP (const std::string &fileName, int lineNumber)
 See documentation of CBreakpointController#deleteBP(const std::string &, int).
int deleteBP (const std::string &symbolName)
 See documentation of CBreakpointController#deleteBP(const std::string &).
int deleteBP (int memArea, ADDRESS_64 address)
 See documentation of CBreakpointController#deleteBP(int, ADDRESS_64).
int deleteHWBP (const std::string &symbolName)
 See documentation of CBreakpointController#deleteHWBP(const std::string &).
int deleteHWBP (int memArea, ADDRESS_64 address)
 See documentation of CBreakpointController#deleteHWBP(int, ADDRESS_64).
int download ()
 See documentation of CLoaderController#download().
CValueType evaluate (isys::IConnectDebug::EAccessFlags accessFlags, const std::string &expression)
 See documentation of CDataController#evaluate(IConnectDebug#EAccessFlags, const std::string &).
CValueType evaluate (isys::IConnectDebug::EAccessFlags accessFlags, isys::IConnectDebug::EEvaluate evaluateFlags, const std::string &expression)
 See documentation of CDataController#evaluate(IConnectDebug::EAccessFlags, IConnectDebug::EEvaluate, const std::string &).
CAddressControllerSPtr getAddressController ()
 Returns reference to address controller.
iconnect::AddressVector getAddressOfSourceLine (const std::string &fileName, int line, bool isReportSize=false)
 See documentation of CAddressController::getAddressOfSourceLine(const std::string &,int,bool).
iconnect::AddressVector getAddressOfSourceLineAtPathSource (const std::string &fileName, int line, const CAddressController::EPathSource &source, bool isReportSize=false)
 See documentation of CAddressController::getAddressOfSourceLineAtPathSource(const std::string &,int,const CAddressController::EPathSource&, bool).
CBreakpointControllerSPtr getBreakpointController ()
 Returns reference to breakpoint controller.
int getCodeArea (bool bPhysical)
 See documentation of CAddressController::getCodeArea(bool) .
CCPUInfo getCPUInfo ()
 See documentation of CDataController#getCPUInfo().
CPUStatus getCPUStatus (bool wantStopReason=true)
 See documentation of CExecutionController#getCPUStatus(bool).
CDataControllerSPtr getDataController ()
 Returns reference to data controller.
CExecutionControllerSPtr getExecutionController ()
 Returns reference to execution controller.
CMemAddress getExpressionAddress (const std::string &expression)
 See documentation of CAddressController::getExpressionAddress(const std::string &).
CMemAddress getFunctionAddress (const std::string &functionName)
 See documentation of CAddressController::getFunctionAddress(const std::string &) .
CMemAddress getLabelAddress (const std::string &labelName)
 See documentation of CAddressController::getLabelAddress(const std::string &).
CLoaderControllerSPtr getLoaderController ()
 Returns reference to loader controller.
int getMemoryAreaBytesPerMAU (int memArea)
 See documentation of CDataController#getMemoryAreaBytesPerMAU(int).
CLineLocation getSourceLineAtAddress (ADDRESS_64 address)
 See documentation of CAddressController::getSourceLineAtAddress(ADDRESS_64).
CLineLocation getSourceLineAtAddress (ADDRESS_64 address, bool isExact, bool isAbsolutePath)
 See documentation of CAddressController::getSourceLineAtAddress(ADDRESS_64, bool, bool).
CLineLocation getSourceLineAtAddressAtPathSource (ADDRESS_64 address, bool isExact, bool isAbsolutePath, const CAddressController::EPathSource &source)
 See documentation of CAddressController::getSourceLineAtAddressAtPathSource(ADDRESS_64, bool, bool, const CAddressController::EPathSource&).
CLineLocation getSourceLineAtAddressAtPathSource (ADDRESS_64 address, const CAddressController::EPathSource &source)
 See documentation of CAddressController::getSourceLineAtAddressAtPathSource(ADDRESS_64, const CAddressController::EPathSource&).
std::string getSymbolAtAddress (isys::IConnectDebug::ESymbolFlags symbolType, uint8_t memArea, ADDRESS_64 address, isys::IConnectDebug::ESymbolFlags scope=isys::IConnectDebug::sScopeExact)
 See documentation of CAddressController::getSymbolAtAddress(isys::IConnectDebug::ESymbolFlags, uint8_t, ADDRESS_64, isys::IConnectDebug::ESymbolFlags).
CSymbolInfo getSymbolInfo (uint32_t flags, const std::string &expression)
 See documentation of CAddressController::getSymbolInfo(uint32_t, const std::string &).
CMemAddress getVariableAddress (const std::string &variableName)
 See documentation of CAddressController::getVariableAddress(const std::string &).
void gotoAddress (uint8_t memArea, ADDRESS_64 address)
 See documentation of CExecutionController#gotoAddress(uint8_t, ADDRESS_64).
void gotoFunction (const std::string &functionName)
 See documentation of CExecutionController#gotoFunction(const std::string &).
std::string modify (isys::IConnectDebug::EAccessFlags accessFlags, const std::string &expression, const CValueType &value, bool readBack=true)
 See documentation of CDataController#modify(IConnectDebug::EAccessFlags, const std::string &, const CValueType &, bool).
std::string modify (isys::IConnectDebug::EAccessFlags accessFlags, const std::string &expression, const std::string &value, bool readBack=true)
 See documentation of CDataController#modify(IConnectDebug::EAccessFlags, const std::string &, const std::string &, bool).
std::string modify (isys::IConnectDebug::EAccessFlags accessFlags, isys::IConnectDebug::EEvaluate evaluateFlags, const std::string &expression, const CValueType &value, bool readBack=true)
 See documentation of CDataController#modify(IConnectDebug::EAccessFlags, IConnectDebug::EEvaluate, const std::string &, const CValueType &, bool).
std::string modify (isys::IConnectDebug::EAccessFlags accessFlags, isys::IConnectDebug::EEvaluate evaluateFlags, const std::string &expression, const std::string &value, bool readBack=true)
 See documentation of CDataController#modify(IConnectDebug::EAccessFlags, IConnectDebug::EEvaluate, const std::string &, const std::string &, bool).
std::vector< uint8_t > readMemory (isys::IConnectDebug::EAccessFlags accessFlags, uint8_t memArea, ADDRESS_64 aAddress, ADDRESS_64 aNumMAUs, uint8_t bytesPerMAU)
 See documentation of CDataController#readMemory(IConnectDebug::EAccessFlags, BYTE, ADDRESS_64, ADDRESS_64, BYTE) .
CValueType readRegister (isys::IConnectDebug::EAccessFlags accessFlags, const std::string &registerName)
 See documentation of CDataController#readRegister(IConnectDebug::EAccessFlags, const std::string &).
CValueType readValue (isys::IConnectDebug::EAccessFlags accessFlags, uint8_t memArea, ADDRESS_64 aAddress, const SType &type)
 See documentation of CDataController#readValue(IConnectDebug::EAccessFlags, BYTE, ADDRESS_64, const SType &).
int reapplyAll ()
 See documentation of CBreakpointController#reapplyAll().
void reset ()
 See documentation of CExecutionController#reset().
int run ()
 See documentation of CExecutionController#run().
int run (CExecutionController::ETimeoutMode timeoutMode)
 See documentation of CExecutionController#run(CExecutionController::ETimeoutMode, bool).
int runUntilAddress (uint8_t memArea, ADDRESS_64 address)
 See documentation of CExecutionController#runUntilAddress(uint8_t, ADDRESS_64).
int runUntilAddress (uint8_t memArea, ADDRESS_64 address, CExecutionController::ETimeoutMode timeoutMode)
 See documentation of CExecutionController#runUntilAddress(uint8_t, ADDRESS_64, CExecutionController::ETimeoutMode, bool).
int runUntilExpression (const std::string &expression)
 This method evaluates the given expression, which must evaluate to address.
int runUntilExpression (const std::string &expression, CExecutionController::ETimeoutMode timeoutMode)
 This method evaluates the given expression, which must evaluate to address.
int runUntilFunction (const std::string &functionName)
 See documentation of CExecutionController#runUntilFunction(const std::string &).
int runUntilFunction (const std::string &functionName, CExecutionController::ETimeoutMode timeoutMode)
 See documentation of CExecutionController#runUntilFunction(const std::string &, CExecutionController::ETimeoutMode, bool).
int runUntilReturn ()
 See documentation of CExecutionController#runUntilReturn().
int runUntilReturn (CExecutionController::ETimeoutMode timeoutMode)
 See documentation of CExecutionController#runUntilReturn(isys::CExecutionController::ETimeoutMode, bool).
int setBP (const std::string &symbolName, int conditionCount=0, const std::string &conditionExpression="")
 See documentation of CBreakpointController#setBP(const std::string &, int, const std::string &).
int setBP (int lineNumber, const std::string &fileName, int conditionCount=0, const std::string &conditionExpression="")
 See documentation of CBreakpointController#setBP(int, const std::string &, int, const std::string &).
int setBP (int memArea, ADDRESS_64 address, int conditionCount=0, const std::string &conditionExpression="")
 See documentation of CBreakpointController#setBP(int, ADDRESS_64, int, const std::string &).
int setEnabled (bool isEnabled, const std::string &fileName, int lineNumber)
 See documentation of CBreakpointController#setEnabled(bool, const std::string &, int).
int setEnabled (bool isEnabled, const std::string &symbolName)
 See documentation of CBreakpointController#setEnabled(bool, const std::string &).
int setEnabled (bool isEnabled, int memArea, ADDRESS_64 address)
 See documentation of CBreakpointController#setEnabled(bool, int, ADDRESS_64).
int setEnabledAll (bool isEnabled)
 See documentation of CBreakpointController#setEnabledAll(bool).
int setHWBP (uint32_t rwAccess, uint32_t accessSize, uint32_t usedDataBytes, bool isEntireObject, const std::string &symbolName, uint32_t data)
 See documentation of CBreakpointController#setHWBP(DWORD, DWORD, DWORD, bool, const std::string &, DWORD).
int setHWBP (uint32_t rwAccess, uint32_t accessSize, uint32_t usedDataBytes, int memArea, ADDRESS_64 address, uint32_t data)
 See documentation of CBreakpointController#setHWBP(DWORD, DWORD, DWORD, int, ADDRESS_64, DWORD).
int setHWEnabled (bool isEnabled, const std::string &symbolName)
 See documentation of CBreakpointController#setHWEnabled(bool, const std::string &).
int setHWEnabled (bool isEnabled, int memArea, ADDRESS_64 address)
 See documentation of CBreakpointController#setHWEnabled(bool, int, ADDRESS_64).
int setHWEnabledAll (bool isEnabled)
 See documentation of CBreakpointController#setHWEnabledAll(bool).
void setPollingEnabled (bool isEnabled)
 See documentation of CExecutionController#setPollingEnabled(bool).
int setSlowRun (bool isSlowRun)
 See documentation of CExecutionController#setSlowRun(bool).
void stepHigh (CExecutionController::ETimeoutMode timeoutMode=CExecutionController::TOUT_10s, bool throwOnTimeout=true)
 See documentation of CExecutionController#stepHigh().
void stepInst (CExecutionController::ETimeoutMode timeoutMode=CExecutionController::TOUT_10s, bool throwOnTimeout=true)
 See documentation of CExecutionController#stepInst().
void stepOverHigh (CExecutionController::ETimeoutMode timeoutMode=CExecutionController::TOUT_10s, bool throwOnTimeout=true)
 See documentation of CExecutionController#stepOverHigh(CExecutionController::ETimeoutMode, bool).
void stepOverInst (CExecutionController::ETimeoutMode timeoutMode=CExecutionController::TOUT_10s, bool throwOnTimeout=true)
 See documentation of CExecutionController#stepOverInst(CExecutionController::ETimeoutMode, bool).
void stop ()
 See documentation of CExecutionController#stop().
bool waitUntilStopped (int timeoutMs=0, uint32_t pollingIntervalMs=100)
 See documentation of CExecutionController#waitUntilStopped(int, uint32_t, bool).
bool waitWhileRunning (int timeoutMs, uint32_t pollingIntervalMs=100)
 See documentation of CExecutionController#waitWhileRunning(int, uint32_t, bool).
std::vector< uint8_t > writeMemory (isys::IConnectDebug::EAccessFlags accessFlags, uint8_t memArea, ADDRESS_64 aAddress, ADDRESS_64 aNumMAUs, uint8_t bytesPerMAU, std::vector< uint8_t > &buff)
 See documentation of CDataController#writeMemory(IConnectDebug::EAccessFlags, BYTE, ADDRESS_64, ADDRESS_64, BYTE, std::vector<BYTE> &).
void writeRegister (isys::IConnectDebug::EAccessFlags accessFlags, const std::string &registerName, const CValueType &registerInfo)
 See documentation of CDataController#writeRegister(IConnectDebug::EAccessFlags, const std::string &, const CValueType &).
void writeValue (isys::IConnectDebug::EAccessFlags accessFlags, bool isRefreshWinIDEAGUIAfterWrite, uint8_t memArea, ADDRESS_64 aAddress, const CValueType &value)
 See documentation of CDataController#writeValue(IConnectDebug::EAccessFlags, bool, BYTE, ADDRESS_64, const CValueType &).
void writeValue (isys::IConnectDebug::EAccessFlags accessFlags, uint8_t memArea, ADDRESS_64 aAddress, const CValueType &value)
 See documentation of CDataController#writeValue(IConnectDebug::EAccessFlags, BYTE, ADDRESS_64, const CValueType &).

Detailed Description

This class is a facade for few other classes.

It adds no new functionality, but provides all-in-one interface for the most common isystem.connect operations. It contains most of the functionality of the following classes:


Constructor & Destructor Documentation

◆ CDebugFacade()

isys::CDebugFacade::CDebugFacade ( std::shared_ptr< ConnectionMgr > connectionMgr)

Instantiates object.

Parameters
connectionMgrclass which maintains connection to winIDEA. Connection must be established before this call.

Python example: test_get_controllers.py

Member Function Documentation

◆ call()

std::string isys::CDebugFacade::call ( const std::string & functionName)

See documentation of CExecutionController#call(const std::string &).

If you need to specify function parameters, use overloads of this method in CExecutionController.

◆ getAddressController()

CAddressControllerSPtr isys::CDebugFacade::getAddressController ( )

Returns reference to address controller.

Python example: test_get_controllers.py

◆ getBreakpointController()

CBreakpointControllerSPtr isys::CDebugFacade::getBreakpointController ( )

Returns reference to breakpoint controller.

Python example: test_get_controllers.py

◆ getDataController()

CDataControllerSPtr isys::CDebugFacade::getDataController ( )

Returns reference to data controller.

Python example: test_get_controllers.py

◆ getExecutionController()

CExecutionControllerSPtr isys::CDebugFacade::getExecutionController ( )

Returns reference to execution controller.

Python example: test_get_controllers.py

◆ getLoaderController()

CLoaderControllerSPtr isys::CDebugFacade::getLoaderController ( )

Returns reference to loader controller.

Python example: test_get_controllers.py

◆ runUntilExpression() [1/2]

int isys::CDebugFacade::runUntilExpression ( const std::string & expression)

This method evaluates the given expression, which must evaluate to address.

Then it runs the target with runUntilAddress. This method aggregates calls to CDataController#evaluate and CExecutionController#runUntilAddress and does not have equivalent in CExecutionController. This method returns immediately - the target may still be in running mode after return!

Parameters
expressionexpression, which evaluates to address. This can be one of
  • function name, for example 'main'
  • label, for example 'calc_speed_EXIT'
  • literal value, for example '0x40004356'
  • expression, for example: '&main + 0x42'. Note the '&' before main!
Returns
S_OK if operation passed, ICONNECT_E_TIMEOUT in case of timeout or ICONNECT_S_MSG_WARN in case of a warning Python example: test_run_until_expression.py

◆ runUntilExpression() [2/2]

int isys::CDebugFacade::runUntilExpression ( const std::string & expression,
CExecutionController::ETimeoutMode timeoutMode )

This method evaluates the given expression, which must evaluate to address.

Then it runs the target with runUntilAddress. This method aggregates calls to CDataController#evaluate and CExecutionController#runUntilAddress and does not have equivalent in CExecutionController.

Parameters
expressionexpression, which evaluates to address. This can be one of
  • function name, for example 'main'
  • label, for example 'calc_speed_EXIT'
  • literal value, for example '0x40004356'
  • expression, for example: '&main + 0x42'. Note the '&' before main!
timeoutModetimeout mode
Returns
S_OK if operation passed, ICONNECT_E_TIMEOUT in case of timeout or ICONNECT_S_MSG_WARN in case of warning Python example: test_run_until_expression.py