Single thread of execution of JAVA stack trace.
More...
#include "../report_type.h"
#include <json.h>
#include <stdbool.h>
#include <stdint.h>
#include <glib.h>
Go to the source code of this file.
|
struct sr_java_thread * | sr_java_thread_new (void) |
|
void | sr_java_thread_init (struct sr_java_thread *thread) |
|
void | sr_java_thread_free (struct sr_java_thread *thread) |
|
struct sr_java_thread * | sr_java_thread_dup (struct sr_java_thread *thread, bool siblings) |
|
int | sr_java_thread_cmp (struct sr_java_thread *thread1, struct sr_java_thread *thread2) |
|
struct sr_java_thread * | sr_java_thread_append (struct sr_java_thread *dest, struct sr_java_thread *item) |
|
void | sr_java_thread_quality_counts (struct sr_java_thread *thread, int *ok_count, int *all_count) |
|
float | sr_java_thread_quality (struct sr_java_thread *thread) |
|
bool | sr_java_thread_remove_frame (struct sr_java_thread *thread, struct sr_java_frame *frame) |
|
bool | sr_java_thread_remove_frames_above (struct sr_java_thread *thread, struct sr_java_frame *frame) |
|
void | sr_java_thread_remove_frames_below_n (struct sr_java_thread *thread, int n) |
|
void | sr_java_thread_append_to_str (struct sr_java_thread *thread, GString *dest) |
|
struct sr_java_thread * | sr_java_thread_parse (const char **input, struct sr_location *location) |
|
char * | sr_java_thread_format_funs (struct sr_java_thread *thread) |
|
char * | sr_java_thread_to_json (struct sr_java_thread *thread) |
|
struct sr_java_thread * | sr_java_thread_from_json (json_object *root, char **error_message) |
|
Single thread of execution of JAVA stack trace.
Definition in file java/thread.h.
◆ sr_java_thread_append()
Appends 'item' at the end of the list 'dest'.
- Returns
- This function returns the 'dest' thread.
◆ sr_java_thread_append_to_str()
void sr_java_thread_append_to_str |
( |
struct sr_java_thread * |
thread, |
|
|
GString * |
dest |
|
) |
| |
Appends a textual representation of 'thread' to the 'str'.
◆ sr_java_thread_cmp()
Compares two threads. When comparing the threads, it compares also their frames.
- Returns
- Returns 0 if the threads are same. Returns negative number if t1 is found to be 'less' than t2. Returns positive number if t1 is found to be 'greater' than t2.
◆ sr_java_thread_dup()
Creates a duplicate of the thread.
- Parameters
-
thread | It must be non-NULL pointer. The thread is not modified by calling this function. |
siblings | Whether to duplicate also siblings referenced by thread->next. If false, thread->next is not duplicated for the new exception, but it is set to NULL. |
◆ sr_java_thread_format_funs()
Prepare a string representing thread which contains just the function and library names. This can be used to store only data necessary for comparison.
- Returns
- Newly allocated string, which should be released by calling g_free().
◆ sr_java_thread_free()
Releases the memory held by the thread. The thread siblings are not released.
- Parameters
-
thread | If thread is NULL, no operation is performed. |
◆ sr_java_thread_from_json()
struct sr_java_thread * sr_java_thread_from_json |
( |
json_object * |
root, |
|
|
char ** |
error_message |
|
) |
| |
Deserializes thread from JSON representation.
- Parameters
-
root | JSON value to be deserialized. |
error_message | On error, *error_message will contain the description of the error. |
- Returns
- Resulting thread, or NULL on error.
◆ sr_java_thread_init()
Initializes all members of the thread to default values. No memory is released, members are simply overwritten. This is useful for initializing a thread structure placed on the stack.
◆ sr_java_thread_new()
Creates and initializes a new frame structure.
- Returns
- It never returns NULL. The returned pointer must be released by calling the function sr_java_thread_free().
◆ sr_java_thread_parse()
If the input contains proper thread with frames, parse the thread, move the input pointer after the thread, and return a structure representing the thread. Otherwise to not modify the input pointer and return NULL.
- Parameters
-
location | The caller must provide a pointer to struct sr_location here. The line and column members are gradually increased as the parser handles the input, keep this in mind to get reasonable values. When this function returns NULL (an error occurred), the structure will contain the error line, column, and message. |
- Returns
- NULL or newly allocated structure, which should be released by calling sr_java_thread_free().
◆ sr_java_thread_quality()
Returns the quality of the thread. The quality is the ratio of the number of frames with function name fully known to the number of all frames. This function does not take into account that some frames are more important than others.
- Parameters
-
thread | Must be a non-NULL pointer. It's not modified in this function. |
- Returns
- A number between 0 and 1. 0 means the lowest quality, 1 means full thread stacktrace is known. If the thread contains no frames, this function returns 1.
◆ sr_java_thread_quality_counts()
void sr_java_thread_quality_counts |
( |
struct sr_java_thread * |
thread, |
|
|
int * |
ok_count, |
|
|
int * |
all_count |
|
) |
| |
Counts the number of 'good' frames and the number of all frames in a thread. Good means that the function name is known (so it's not just '??').
- Parameters
-
ok_count | |
all_count | Not zeroed. This function just adds the numbers to ok_count and all_count. |
◆ sr_java_thread_remove_frame()
Removes the frame from the thread and then deletes it.
- Returns
- True if the frame was found in the thread and removed and deleted. False if the frame was not found in the thread.
◆ sr_java_thread_remove_frames_above()
Removes all the frames from the thread that are above certain frame.
- Returns
- True if the frame was found, and all the frames that were above the frame in the thread were removed from the thread and then deleted. False if the frame was not found in the thread.
◆ sr_java_thread_remove_frames_below_n()
void sr_java_thread_remove_frames_below_n |
( |
struct sr_java_thread * |
thread, |
|
|
int |
n |
|
) |
| |
Keeps only the top n frames in the thread.