GetStackFrameList

Syntax

GetStackFrameListResult GetStackFrameList(OdId tObject)

Parameters

tObject. Moniker of the development environment object, for which debugging is running.

Description

The GetStackFrameList operation gets call stack during code debugging.

Comments

The operation gets a list of all subprograms executed during application debugging. To execute the operation, in the tObject field specify moniker of the object started for debugging. The object moniker can be obtained on executing the GetObjects operation. An object can be started for debugging using the DebugModule operation.

The operation results in the collection of call stack elements.

Example

Below is the example of getting call stack during code debugging. The request contains moniker of debugged unit. The response contains the obtained call stack of procedures/functions.

SOAP request:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetStackFrameList xmlns="http://www.fsight.ru/PP.SOM.Som">
<tObject xmlns="">
  <id>KDNGAKLFDHAOFOAEDIBJJNCFPBMEPGOEAKMGMFICJIGJLLAN!M!305352</id>
  </tObject>
  </GetStackFrameList>
  </s:Body>
  </s:Envelope>

SOAP response:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<GetStackFrameListResult xmlns="http://www.fsight.ru/PP.SOM.Som" xmlns:q1="http://www.fsight.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<stackFrames xmlns="">
<it>
  <method>TObject.GetState</method>
  <moduleName>M_STACKFRAMELIST</moduleName>
  <line>21</line>
  </it>
<it>
  <method>TObject.Run</method>
  <moduleName>M_STACKFRAMELIST</moduleName>
  <line>13</line>
  </it>
<it>
  <method>Main</method>
  <moduleName>M_STACKFRAMELIST</moduleName>
  <line>5</line>
  </it>
  </stackFrames>
  </GetStackFrameListResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON request:

{
"GetStackFrameList" :
{
"tObject" :
{
"id" : "KDNGAKLFDHAOFOAEDIBJJNCFPBMEPGOEAKMGMFICJIGJLLAN!M!305352"
}
}
}

JSON response:

{
"GetStackFrameListResult" :
{
"stackFrames" :
{
"it" :
[
{
"method" : "TObject.GetState",
"moduleName" : "M_STACKFRAMELIST",
"line" : "21"
},
{
"method" : "TObject.Run",
"moduleName" : "M_STACKFRAMELIST",
"line" : "13"
},
{
"method" : "Main",
"moduleName" : "M_STACKFRAMELIST",
"line" : "5"
}
]
}
}
}
public static GetStackFrameListResult GetStackFrameList(MbId mb, string modId)
{
var somClient = new SomPortTypeClient(); // Proxy object for operation execution
// Operation execution parameters
var tGet = new GetStackFrameList()
{
// Create object moniker
tObject = new OdId() { id = mb.id + "!" + FindObjectById(mb, modId).k }
};
// Get call stack
var result = somClient.GetStackFrameList(tGet);
return result;
}

See also:

Working with Development Environment