Class FunctionCallRecorder
- java.lang.Object
-
- com.github.beothorn.agent.recorder.FunctionCallRecorder
-
public class FunctionCallRecorder extends java.lang.ObjectThis class is responsible for recording the call stack of a function call. Usually, this should be written following OO principles of encapsulation. But this class bytecode is injected on the actual code, and having stuff private seems to cause some issues. You will see some questionable visibility choices here.
-
-
Field Summary
Fields Modifier and Type Field Description static booleanisRecordingstatic booleanshouldCaptureStacktracestatic booleanshouldPrintQualifiedstatic java.util.Map<java.lang.String,Span>stackPerThreadstatic java.lang.StringstartTriggerstatic java.lang.StringstopTrigger
-
Constructor Summary
Constructors Constructor Description FunctionCallRecorder()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidenterConstructor(java.lang.reflect.Constructor<?> constructor)static voidenterFunction(java.lang.reflect.Method method)static voidexit()static java.lang.StringgetClassNameFor(java.lang.reflect.Constructor<?> constructor)static java.lang.StringgetClassNameFor(java.lang.reflect.Method method)static java.util.Optional<java.lang.String>getFinalCallStack()static java.util.Optional<java.lang.String>getOldCallStack()static voidonEnter(java.lang.String threadName, java.lang.String name, java.lang.String className, java.lang.String method, long entryTime)static voidonEnter(java.lang.String threadName, java.lang.String name, java.lang.String className, java.lang.String method, long entryTime, java.lang.String[][] arguments)static voidonLeave(java.lang.String threadName, long exitTime)static voidonLeave(java.lang.String threadName, long exitTime, java.lang.String[] returnValue)static voidsetShouldCaptureStacktrace(boolean captureStacktrace)static voidsetStartTrigger(java.lang.String startTriggerFunctionNam)static voidsetStopTrigger(java.lang.String stopTriggerFunctionNam)
-
-
-
Field Detail
-
stackPerThread
public static final java.util.Map<java.lang.String,Span> stackPerThread
-
shouldPrintQualified
public static boolean shouldPrintQualified
-
shouldCaptureStacktrace
public static boolean shouldCaptureStacktrace
-
isRecording
public static boolean isRecording
-
startTrigger
public static java.lang.String startTrigger
-
stopTrigger
public static java.lang.String stopTrigger
-
-
Method Detail
-
enterFunction
public static void enterFunction(java.lang.reflect.Method method)
-
enterConstructor
public static void enterConstructor(java.lang.reflect.Constructor<?> constructor)
-
exit
public static void exit()
-
setStartTrigger
public static void setStartTrigger(java.lang.String startTriggerFunctionNam)
-
setShouldCaptureStacktrace
public static void setShouldCaptureStacktrace(boolean captureStacktrace)
-
setStopTrigger
public static void setStopTrigger(java.lang.String stopTriggerFunctionNam)
-
getClassNameFor
public static java.lang.String getClassNameFor(java.lang.reflect.Method method)
-
getClassNameFor
public static java.lang.String getClassNameFor(java.lang.reflect.Constructor<?> constructor)
-
onEnter
public static void onEnter(java.lang.String threadName, java.lang.String name, java.lang.String className, java.lang.String method, long entryTime)
-
onEnter
public static void onEnter(java.lang.String threadName, java.lang.String name, java.lang.String className, java.lang.String method, long entryTime, java.lang.String[][] arguments)
-
onLeave
public static void onLeave(java.lang.String threadName, long exitTime)
-
onLeave
public static void onLeave(java.lang.String threadName, long exitTime, java.lang.String[] returnValue)
-
getOldCallStack
public static java.util.Optional<java.lang.String> getOldCallStack()
-
getFinalCallStack
public static java.util.Optional<java.lang.String> getFinalCallStack()
-
-