2 * Copyright (C) 2001-2009, Parrot Foundation.
7 * Data Structure and Algorithms:
13 #ifndef PARROT_TRACE_H_GUARD
14 #define PARROT_TRACE_H_GUARD
16 #include "parrot/parrot.h"
18 /* HEADERIZER BEGIN: src/runcore/trace.c */
19 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
21 PARROT_CANNOT_RETURN_NULL
22 Interp
* debugger_or_interp(PARROT_INTERP
)
23 __attribute__nonnull__(1);
25 int trace_key_dump(PARROT_INTERP
, ARGIN(PMC
*key
))
26 __attribute__nonnull__(1)
27 __attribute__nonnull__(2);
29 void trace_op(PARROT_INTERP
,
30 ARGIN(const opcode_t
*code_start
),
31 ARGIN(const opcode_t
*code_end
),
32 ARGIN_NULLOK(const opcode_t
*pc
))
33 __attribute__nonnull__(1)
34 __attribute__nonnull__(2)
35 __attribute__nonnull__(3);
37 void trace_op_dump(PARROT_INTERP
,
38 ARGIN(const opcode_t
*code_start
),
39 ARGIN(const opcode_t
*pc
))
40 __attribute__nonnull__(1)
41 __attribute__nonnull__(2)
42 __attribute__nonnull__(3);
44 void trace_pmc_dump(PARROT_INTERP
, ARGIN_NULLOK(PMC
*pmc
))
45 __attribute__nonnull__(1);
47 #define ASSERT_ARGS_debugger_or_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
48 PARROT_ASSERT_ARG(interp))
49 #define ASSERT_ARGS_trace_key_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
50 PARROT_ASSERT_ARG(interp) \
51 , PARROT_ASSERT_ARG(key))
52 #define ASSERT_ARGS_trace_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
53 PARROT_ASSERT_ARG(interp) \
54 , PARROT_ASSERT_ARG(code_start) \
55 , PARROT_ASSERT_ARG(code_end))
56 #define ASSERT_ARGS_trace_op_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
57 PARROT_ASSERT_ARG(interp) \
58 , PARROT_ASSERT_ARG(code_start) \
59 , PARROT_ASSERT_ARG(pc))
60 #define ASSERT_ARGS_trace_pmc_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
61 PARROT_ASSERT_ARG(interp))
62 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
63 /* HEADERIZER END: src/runcore/trace.c */
65 #endif /* PARROT_TRACE_H_GUARD */
70 * c-file-style: "parrot"
72 * vim: expandtab shiftwidth=4: