12 static int first_blocked = 1;
52 fprintf(stderr,
"Duktape is blocked, send DumpHeap\n");
65 for (i = 0; i < 100000; i++) {
93 fprintf(stderr,
"Duktape is blocked, send Eval and StepInto to resume execution\n");
113 fprintf(stderr,
"Received dvalue: %s\n", buf);
139 fprintf(stderr,
"Received handshake line: '%s'\n", line);
148 fprintf(stderr,
"Debug transport detached\n");
152int main(
int argc,
char *argv[]) {
157 (void) argc; (void) argv;
161 fprintf(stderr,
"Failed to create Duktape heap\n");
169 fprintf(stderr,
"Failed to create debug transport context\n");
192 fprintf(stderr,
"Debugger attached, running eval\n");
206 "print('Hello world!');\n"
207 "[ undefined, null, true, false, 123, -123, 123.1, 0, -0, 1/0, 0/0, -1/0, \n"
208 " 'foo', Duktape.Buffer('bar'), Duktape.Pointer('dummy'), Math.cos, \n"
209 "].forEach(function (val) {\n"
215 "for (i = 0; i < 10; i++) {\n"
218 " evalMe = Duktape.Buffer(str);\n"
219 " str = str + str;\n"
void duk_trans_dvalue_send_string(duk_trans_dvalue_ctx *ctx, const char *str)
void duk_trans_dvalue_send_pointer(duk_trans_dvalue_ctx *ctx, const char *ptr_data, size_t ptr_len)
duk_size_t duk_trans_dvalue_read_cb(void *udata, char *buffer, duk_size_t length)
void duk_trans_dvalue_read_flush_cb(void *udata)
duk_trans_dvalue_ctx * duk_trans_dvalue_init(void)
void duk_trans_dvalue_send_true(duk_trans_dvalue_ctx *ctx)
void duk_trans_dvalue_send_lstring(duk_trans_dvalue_ctx *ctx, const char *str, size_t len)
void duk_trans_dvalue_send_unused(duk_trans_dvalue_ctx *ctx)
void duk_trans_dvalue_send_heapptr(duk_trans_dvalue_ctx *ctx, const char *ptr_data, size_t ptr_len)
void duk_trans_dvalue_send_null(duk_trans_dvalue_ctx *ctx)
duk_size_t duk_trans_dvalue_peek_cb(void *udata)
duk_size_t duk_trans_dvalue_write_cb(void *udata, const char *buffer, duk_size_t length)
void duk_dvalue_to_string(duk_dvalue *dv, char *buf)
void duk_trans_dvalue_write_flush_cb(void *udata)
void duk_dvalue_free(duk_dvalue *dv)
void duk_trans_dvalue_send_undefined(duk_trans_dvalue_ctx *ctx)
void duk_trans_dvalue_free(duk_trans_dvalue_ctx *ctx)
void duk_trans_dvalue_send_buffer(duk_trans_dvalue_ctx *ctx, const char *buf, size_t len)
void duk_trans_dvalue_send_req(duk_trans_dvalue_ctx *ctx)
void duk_trans_dvalue_send_integer(duk_trans_dvalue_ctx *ctx, int val)
void duk_trans_dvalue_send_lightfunc(duk_trans_dvalue_ctx *ctx, int lf_flags, const char *ptr_data, size_t ptr_len)
void duk_trans_dvalue_detached_cb(void *udata)
void duk_trans_dvalue_send_number(duk_trans_dvalue_ctx *ctx, double val)
void duk_trans_dvalue_send_eom(duk_trans_dvalue_ctx *ctx)
void duk_trans_dvalue_send_object(duk_trans_dvalue_ctx *ctx, int classnum, const char *ptr_data, size_t ptr_len)
void duk_trans_dvalue_send_false(duk_trans_dvalue_ctx *ctx)
void duk_trans_dvalue_send_req_cmd(duk_trans_dvalue_ctx *ctx, int cmd)
#define DUK_DVALUE_TOSTRING_BUFLEN
void my_detached(duk_trans_dvalue_ctx *ctx)
void my_cooperate(duk_trans_dvalue_ctx *ctx, int block)
void my_received(duk_trans_dvalue_ctx *ctx, duk_dvalue *dv)
void my_handshake(duk_trans_dvalue_ctx *ctx, const char *line)
DUK_EXTERNAL void duk_debugger_detach(duk_context *ctx)
DUK_EXTERNAL void duk_destroy_heap(duk_context *ctx)
DUK_EXTERNAL void duk_pop(duk_context *ctx)
#define duk_eval_string(ctx, src)
#define duk_debugger_attach(ctx, read_cb, write_cb, peek_cb, read_flush_cb, write_flush_cb, detached_cb, udata)
#define duk_create_heap_default()
static void block(LexState *ls)
duk_trans_dvalue_detached_function detached
duk_trans_dvalue_handshake_function handshake
duk_trans_dvalue_cooperate_function cooperate
duk_trans_dvalue_received_function received