__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

kentishfootball@216.73.216.211: ~ $
/**************************************************************************/
/*                                                                        */
/*                                 OCaml                                  */
/*                                                                        */
/*             Xavier Leroy, projet Cristal, INRIA Rocquencourt           */
/*                                                                        */
/*   Copyright 2001 Institut National de Recherche en Informatique et     */
/*     en Automatique.                                                    */
/*                                                                        */
/*   All rights reserved.  This file is distributed under the terms of    */
/*   the GNU Lesser General Public License version 2.1, with the          */
/*   special exception on linking described in the file LICENSE.          */
/*                                                                        */
/**************************************************************************/

#ifndef CAML_BACKTRACE_H
#define CAML_BACKTRACE_H

#ifdef CAML_INTERNALS

#include "mlvalues.h"
#include "exec.h"

/* Runtime support for backtrace generation.
 *
 * It has two kind of users:
 * - high-level API to capture and decode backtraces;
 * - low-level runtime routines, to introspect machine state and determine
 *   whether a backtrace should be generated when using "raise".
 *
 * Backtrace generation is split in multiple steps.
 * The lowest-level one, done by [backtrace_prim.c] just fills the
 * [caml_backtrace_buffer] variable each time a frame is unwinded.
 * At that point, we don't know whether the backtrace will be useful or not so
 * this code should be as fast as possible.
 *
 * If the backtrace happens to be useful, later passes will read
 * [caml_backtrace_buffer] and turn it into a [raw_backtrace] and then a
 * [backtrace].
 * This is done in [backtrace.c] and [stdlib/printexc.ml].
 *
 * Content of buffers
 * ------------------
 *
 * [caml_backtrace_buffer] (really cheap)
 *   Backend and process image dependent, abstracted by C-type backtrace_slot.
 * [raw_backtrace] (cheap)
 *   OCaml values of abstract type [Printexc.raw_backtrace_slot],
 *   still backend and process image dependent (unsafe to marshal).
 * [backtrace] (more expensive)
 *   OCaml values of algebraic data-type [Printexc.backtrace_slot]
 */

/* Non zero iff backtraces are recorded.
 * One should use to change this variable [caml_record_backtrace].
 */
CAMLextern int caml_backtrace_active;

/* The [backtrace_slot] type represents values stored in the
 * [caml_backtrace_buffer].  In bytecode, it is the same as a
 * [code_t], in native code it as a [frame_descr *].  The difference
 * doesn't matter for code outside [backtrace_prim.c], so it is just
 * exposed as a [backtrace_slot].
 */
typedef void * backtrace_slot;

/* The [caml_backtrace_buffer] and [caml_backtrace_last_exn]
 * variables are valid only if [caml_backtrace_active != 0].
 *
 * They are part of the state specific to each thread, and threading libraries
 * are responsible for copying them on context switch.
 * See [otherlibs/systhreads/st_stubs.c] and [otherlibs/threads/scheduler.c].
 */

/* [caml_backtrace_buffer] is filled by runtime when unwinding stack.
 * It is an array ranging from [0] to [caml_backtrace_pos - 1].
 * [caml_backtrace_pos] is always zero if [!caml_backtrace_active].
 *
 * Its maximum size is determined by [BACKTRACE_BUFFER_SIZE] from
 * [backtrace_prim.h], but this shouldn't affect users.
 */
CAMLextern backtrace_slot * caml_backtrace_buffer;
CAMLextern int caml_backtrace_pos;

/* [caml_backtrace_last_exn] stores the last exception value that was raised,
 * iff [caml_backtrace_active != 0].
 * It is tested for equality to determine whether a raise is a re-raise of the
 * same exception.
 *
 * FIXME: this shouldn't matter anymore. Since OCaml 4.02, non-parameterized
 * exceptions are constant, so physical equality is no longer appropriate.
 * raise and re-raise are distinguished by:
 * - passing reraise = 1 to [caml_stash_backtrace] (see below) in the bytecode
 *   interpreter;
 * - directly resetting [caml_backtrace_pos] to 0 in native runtimes for raise.
 */
CAMLextern value caml_backtrace_last_exn;

/* [caml_record_backtrace] toggle backtrace recording on and off.
 * This function can be called at runtime by user-code, or during
 * initialization if backtraces were requested.
 *
 * It might be called before GC initialization, so it shouldn't do OCaml
 * allocation.
 */
CAMLprim value caml_record_backtrace(value vflag);


#ifndef NATIVE_CODE

/* Path to the file containing debug information, if any, or NULL. */
CAMLextern char * caml_cds_file;

/* Primitive called _only_ by runtime to record unwinded frames to
 * backtrace.  A similar primitive exists for native code, but with a
 * different prototype. */
extern void caml_stash_backtrace(value exn, code_t pc, value * sp, int reraise);

#endif


/* Default (C-level) printer for backtraces.  It is called if an
 * exception causes a termination of the program or of a thread.
 *
 * [Printexc] provide a higher-level printer mimicking its output but making
 * use of registered exception printers, and is used when possible in place of
 * this function after [Printexc] initialization.
 */
CAMLextern void caml_print_exception_backtrace(void);

void caml_init_backtrace(void);
CAMLexport void caml_init_debug_info(void);

#endif /* CAML_INTERNALS */

#endif /* CAML_BACKTRACE_H */

Filemanager

Name Type Size Permission Actions
address_class.h File 3.22 KB 0644
alloc.h File 3.27 KB 0644
backtrace.h File 5.42 KB 0644
backtrace_prim.h File 3.53 KB 0644
bigarray.h File 4.75 KB 0644
callback.h File 2.41 KB 0644
compact.h File 1.34 KB 0644
compare.h File 1.22 KB 0644
compatibility.h File 12.92 KB 0644
config.h File 7.75 KB 0644
custom.h File 2.65 KB 0644
debugger.h File 4.95 KB 0644
dynlink.h File 1.87 KB 0644
exec.h File 2.39 KB 0644
fail.h File 3.86 KB 0644
finalise.h File 1.6 KB 0644
fix_code.h File 1.79 KB 0644
freelist.h File 1.56 KB 0644
gc.h File 3.45 KB 0644
gc_ctrl.h File 2.04 KB 0644
globroots.h File 1.37 KB 0644
hash.h File 1.64 KB 0644
hooks.h File 1.48 KB 0644
instrtrace.h File 1.51 KB 0644
instruct.h File 2.77 KB 0644
int64_emul.h File 6.77 KB 0644
int64_format.h File 3.57 KB 0644
int64_native.h File 2.98 KB 0644
interp.h File 1.57 KB 0644
intext.h File 7.79 KB 0644
io.h File 5.02 KB 0644
jumptbl.h File 2.39 KB 0644
major_gc.h File 3.31 KB 0644
md5.h File 1.96 KB 0644
memory.h File 17.13 KB 0644
minor_gc.h File 4.36 KB 0644
misc.h File 14.2 KB 0644
mlvalues.h File 12.23 KB 0644
osdeps.h File 4.37 KB 0644
prims.h File 1.57 KB 0644
printexc.h File 1.37 KB 0644
reverse.h File 5.65 KB 0644
roots.h File 1.92 KB 0644
signals.h File 2.32 KB 0644
signals_machdep.h File 2.47 KB 0644
socketaddr.h File 2.16 KB 0644
spacetime.h File 8.37 KB 0644
stack.h File 4.53 KB 0644
stacks.h File 1.79 KB 0644
startup.h File 2.12 KB 0644
startup_aux.h File 1.6 KB 0644
sys.h File 1.63 KB 0644
threads.h File 3.12 KB 0644
ui.h File 1.44 KB 0644
unixsupport.h File 1.95 KB 0644
version.h File 193 B 0644
weak.h File 3.05 KB 0644
Filemanager