Browse Prior Art Database

Stack trace context reverse engineering

IP.com Disclosure Number: IPCOM000235502D
Publication Date: 2014-Mar-05
Document File: 3 page(s) / 21K

Publishing Venue

The IP.com Prior Art Database

Abstract

In order to speed up process of defect/tickets analysis we propose following solution: Based on stack trace and source code the tool (for example RTC) provides user with report with detailed information about stack trace context. The report contains information like this: - value of variables or at least approximated values of variables, - events which prior the stack trace (exceptions, incoming messages, interruptions, etc) - resource related events (successful connection, file closing, lock release etc.) - resource availability (database status, file not exist, etc) Collection of all the details can be fully automated. It can be done based on stack trace and source code only but other source of information can be utilized as well (config files, other stack traces in case of chained exceptions).

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 71% of the total text.

Page 01 of 3

Stack trace context reverse engineering

Stack traces itself attached to tickets/defects/CRMs etc. are not much useful and meaningful for L2 and other non-developers involved in process of ticket handling. In order to have any value from stack trace one have to usually look into code, do some flow analysis and even do some debugging. Users of CRMs, RTC and similar tools have sometime spent a lot of time on analyzing code to retrieve any context based on stack trace.


I. Based on stack trace following information can be automatically discover from source code:


1. Values of variables which causes given flow. Flow of program is determined by values of some variables.

Example:

Source:

....
function f1(){

if (variable1 > 7){ f2()

}

}

function f2(){

} ...

Stack trace:

....
f2() line 123
f1() line 86
....
based on these information it is known that variable1 had value greater than 7 when

stack trace was dumped.


2. Value of variables assigned in a flow of program:

Source:
....

function f1(){

variable2 = 37 f2()

}

function f2(){

1


Page 02 of 3

} ...

Stack trace:

....
f2() line 123
f1() line 86
....
based on these information it can be determined that variable2 had value 37 when

stack trace was dumped.


3. The flow was preceded by exception:

Source:
....

function f1(){ try{

varaible2 = 37 f2()

}catch(Exception e1){ f2()

}

}

function f2(){

} ...

Stack trace:

....
f2() line 123
f1() line 86
....

In this case it can be determined that exception e1 caused this flow of program


4. In some langu...