| Stackdb
    Stackdb is a stackable, multi-target and -level source debugger and memory forensics library. | 
#include <stdlib.h>#include <pthread.h>#include <limits.h>#include "common.h"#include "evloop.h"

Go to the source code of this file.
| Data Structures | |
| struct | monitor_objtype_ops | 
| struct | monitor | 
| struct | monitor_msg | 
| Macros | |
| #define | MONITOR_CHILD_RECV_FD_ENVVAR "MONITOR_CHILD_RECV_FD" | 
| #define | MONITOR_CHILD_SEND_FD_ENVVAR "MONITOR_CHILD_SEND_FD" | 
| #define | MONITOR_OBJID_ENVVAR "MONITOR_OBJID" | 
| #define | MONITOR_OBJTYPE_ENVVAR "MONITOR_OBJTYPE" | 
| #define | SEQNO_MAX SHRT_MAX | 
| Typedefs | |
| typedef int | monitor_flags_t | 
| typedef int(* | monitor_stdio_callback_t )(int fd, char *buf, int len, void *state) | 
| Enumerations | |
| enum | monitor_type_t { MONITOR_TYPE_THREAD = 1, MONITOR_TYPE_PROCESS = 2 } | 
| enum | monitor_flag_t { MONITOR_FLAG_NONE = 0, MONITOR_FLAG_BIDI = 1 } | 
| enum | monitor_error_t { MONITOR_ERROR_UNKNOWN = 1, MONITOR_ERROR_STDIN = 2, MONITOR_ERROR_STDOUT = 3, MONITOR_ERROR_STDERR = 4, MONITOR_ERROR_OBJ = 5 } | 
| enum | monitor_event_t { MONITOR_EVENT_CHILD_DIED = 1 } | 
| Functions | |
| void | monitor_init (void) | 
| void | monitor_fini (void) | 
| int | monitor_register_objtype (int objtype, struct monitor_objtype_ops *ops, pthread_mutex_t *objtype_mutex) | 
| int | monitor_lock_objtype (int objtype) | 
| int | monitor_unlock_objtype (int objtype) | 
| int | monitor_unlock_objtype_unsafe (int objtype) | 
| int | monitor_lookup_objid_lock_objtype (int objid, int objtype, void **obj, struct monitor **monitor) | 
| int | monitor_lookup_objid_lock_objtype_and_monitor (int objid, int objtype, void **obj, struct monitor **monitor) | 
| struct array_list * | monitor_list_objs_by_objtype_lock_objtype (int objtype, int include_null) | 
| struct array_list * | monitor_list_objids_by_objtype_lock_objtype (int objtype, int include_null) | 
| int | monitor_get_unique_objid (void) | 
| struct monitor * | monitor_create (monitor_type_t type, monitor_flags_t flags, int objid, int objtype, void *obj, void *objstate) | 
| struct monitor * | monitor_create_custom (monitor_type_t type, monitor_flags_t flags, int objid, int objtype, void *obj, void *objstate, evloop_handler_t custom_recv_evh, evloop_handler_t custom_child_recv_evh) | 
| int | monitor_add_primary_obj (struct monitor *monitor, int objid, int objtype, void *obj, void *objstate) | 
| int | monitor_add_obj (struct monitor *monitor, int objid, int objtype, void *obj, void *objstate) | 
| int | monitor_close_obj (struct monitor *monitor, void *obj, int kill, int kill_sig) | 
| int | monitor_close_objid (struct monitor *monitor, int objid, int kill, int kill_sig) | 
| int | monitor_del_obj (struct monitor *monitor, void *obj) | 
| int | monitor_del_objid (struct monitor *monitor, int objid) | 
| int | monitor_lookup_objid (int objid, int *objtype, void **obj, struct monitor **monitor) | 
| int | monitor_can_attach (void) | 
| int | monitor_can_attach_bidi (void) | 
| struct monitor * | monitor_attach (monitor_type_t type, monitor_flags_t flags, int objtype, void *obj, void *objstate, evloop_handler_t custom_child_recv_evh, monitor_stdio_callback_t stdin_callback, void *callback_state) | 
| int | monitor_setup_stdin (struct monitor *monitor, char *stdin_buf, int stdin_buflen) | 
| int | monitor_setup_stdout (struct monitor *monitor, int maxbufsiz, char *stdout_logfile, monitor_stdio_callback_t stdout_callback, void *callback_state) | 
| int | monitor_setup_stderr (struct monitor *monitor, int maxbufsiz, char *stderr_logfile, monitor_stdio_callback_t stderr_callback, void *callback_state) | 
| int | monitor_spawn (struct monitor *monitor, char *filename, char *const argv[], char *const envp[], char *dir) | 
| int | monitor_run (struct monitor *monitor) | 
| int | monitor_is_done (struct monitor *monitor) | 
| int | monitor_objects (struct monitor *monitor) | 
| int | monitor_live_objects (struct monitor *monitor) | 
| int | monitor_live_children (struct monitor *monitor) | 
| int | monitor_shutdown (struct monitor *monitor) | 
| int | monitor_destroy (struct monitor *monitor) | 
| void | monitor_msg_free (struct monitor_msg *msg) | 
| void | monitor_msg_free_save_buffer (struct monitor_msg *msg) | 
| struct monitor_msg * | monitor_msg_create (int objid, int id, short cmd, short seqno, int buflen, char *buf, void *msg_obj) | 
| int | monitor_send (struct monitor_msg *msg) | 
| struct monitor_msg * | monitor_recv (struct monitor *monitor) | 
| int | monitor_child_send (struct monitor_msg *msg, struct monitor *monitor) | 
| struct monitor_msg * | monitor_child_recv (struct monitor *monitor) | 
| #define MONITOR_CHILD_RECV_FD_ENVVAR "MONITOR_CHILD_RECV_FD" | 
| #define MONITOR_CHILD_SEND_FD_ENVVAR "MONITOR_CHILD_SEND_FD" | 
| typedef int monitor_flags_t | 
| typedef int(* monitor_stdio_callback_t)(int fd, char *buf, int len, void *state) | 
| enum monitor_error_t | 
| enum monitor_event_t | 
| enum monitor_flag_t | 
| enum monitor_type_t | 
| int monitor_add_obj | ( | struct monitor * | monitor, | 
| int | objid, | ||
| int | objtype, | ||
| void * | obj, | ||
| void * | objstate | ||
| ) | 
| int monitor_add_primary_obj | ( | struct monitor * | monitor, | 
| int | objid, | ||
| int | objtype, | ||
| void * | obj, | ||
| void * | objstate | ||
| ) | 
| struct monitor* monitor_attach | ( | monitor_type_t | type, | 
| monitor_flags_t | flags, | ||
| int | objtype, | ||
| void * | obj, | ||
| void * | objstate, | ||
| evloop_handler_t | custom_child_recv_evh, | ||
| monitor_stdio_callback_t | stdin_callback, | ||
| void * | callback_state | ||
| ) | 
| struct monitor_msg* monitor_child_recv | ( | struct monitor * | monitor | ) | 
| int monitor_child_send | ( | struct monitor_msg * | msg, | 
| struct monitor * | monitor | ||
| ) | 
| int monitor_close_obj | ( | struct monitor * | monitor, | 
| void * | obj, | ||
| int | kill, | ||
| int | kill_sig | ||
| ) | 
| int monitor_close_objid | ( | struct monitor * | monitor, | 
| int | objid, | ||
| int | kill, | ||
| int | kill_sig | ||
| ) | 
| struct monitor* monitor_create | ( | monitor_type_t | type, | 
| monitor_flags_t | flags, | ||
| int | objid, | ||
| int | objtype, | ||
| void * | obj, | ||
| void * | objstate | ||
| ) | 
| struct monitor* monitor_create_custom | ( | monitor_type_t | type, | 
| monitor_flags_t | flags, | ||
| int | objid, | ||
| int | objtype, | ||
| void * | obj, | ||
| void * | objstate, | ||
| evloop_handler_t | custom_recv_evh, | ||
| evloop_handler_t | custom_child_recv_evh | ||
| ) | 
| int monitor_del_obj | ( | struct monitor * | monitor, | 
| void * | obj | ||
| ) | 
| int monitor_del_objid | ( | struct monitor * | monitor, | 
| int | objid | ||
| ) | 
| struct array_list* monitor_list_objids_by_objtype_lock_objtype | ( | int | objtype, | 
| int | include_null | ||
| ) | 
| struct array_list* monitor_list_objs_by_objtype_lock_objtype | ( | int | objtype, | 
| int | include_null | ||
| ) | 
| int monitor_lookup_objid | ( | int | objid, | 
| int * | objtype, | ||
| void ** | obj, | ||
| struct monitor ** | monitor | ||
| ) | 
| int monitor_lookup_objid_lock_objtype | ( | int | objid, | 
| int | objtype, | ||
| void ** | obj, | ||
| struct monitor ** | monitor | ||
| ) | 
| int monitor_lookup_objid_lock_objtype_and_monitor | ( | int | objid, | 
| int | objtype, | ||
| void ** | obj, | ||
| struct monitor ** | monitor | ||
| ) | 
| struct monitor_msg* monitor_msg_create | ( | int | objid, | 
| int | id, | ||
| short | cmd, | ||
| short | seqno, | ||
| int | buflen, | ||
| char * | buf, | ||
| void * | msg_obj | ||
| ) | 
| void monitor_msg_free | ( | struct monitor_msg * | msg | ) | 
| void monitor_msg_free_save_buffer | ( | struct monitor_msg * | msg | ) | 
| struct monitor_msg* monitor_recv | ( | struct monitor * | monitor | ) | 
| int monitor_register_objtype | ( | int | objtype, | 
| struct monitor_objtype_ops * | ops, | ||
| pthread_mutex_t * | objtype_mutex | ||
| ) | 
| int monitor_send | ( | struct monitor_msg * | msg | ) | 
| int monitor_setup_stderr | ( | struct monitor * | monitor, | 
| int | maxbufsiz, | ||
| char * | stderr_logfile, | ||
| monitor_stdio_callback_t | stderr_callback, | ||
| void * | callback_state | ||
| ) | 
| int monitor_setup_stdin | ( | struct monitor * | monitor, | 
| char * | stdin_buf, | ||
| int | stdin_buflen | ||
| ) | 
| int monitor_setup_stdout | ( | struct monitor * | monitor, | 
| int | maxbufsiz, | ||
| char * | stdout_logfile, | ||
| monitor_stdio_callback_t | stdout_callback, | ||
| void * | callback_state | ||
| ) | 
| int monitor_spawn | ( | struct monitor * | monitor, | 
| char * | filename, | ||
| char *const | argv[], | ||
| char *const | envp[], | ||
| char * | dir | ||
| ) | 
 1.8.8
 1.8.8