MCPcopy Create free account
hub / github.com/GJDuck/e9patch / entry

Function entry

examples/state.c:27–60  ·  view source on GitHub ↗

* Entry point. */

Source from the content-addressed store, hash-verified

25 * Entry point.
26 */
27void entry(const struct STATE *state, const char *_asm)
28{
29 static mutex_t mutex = MUTEX_INITIALIZER;
30 if (mutex_lock(&mutex) < 0)
31 return;
32 clearerr(stderr);
33 fprintf(stderr, RED "%.16lx" WHITE ": " GREEN "%s" WHITE "\n",
34 state->rip, _asm);
35 fprintf(stderr, "\t%rax = 0x%.16lx (%ld)\n", state->rax, state->rax);
36 fprintf(stderr, "\t%rcx = 0x%.16lx (%ld)\n", state->rcx, state->rcx);
37 fprintf(stderr, "\t%rdx = 0x%.16lx (%ld)\n", state->rdx, state->rdx);
38 fprintf(stderr, "\t%rbx = 0x%.16lx (%ld)\n", state->rbx, state->rbx);
39 fprintf(stderr, "\t%rsp = 0x%.16lx (%ld)\n", state->rsp, state->rsp);
40 fprintf(stderr, "\t%rbp = 0x%.16lx (%ld)\n", state->rbp, state->rbp);
41 fprintf(stderr, "\t%rsi = 0x%.16lx (%ld)\n", state->rsi, state->rsi);
42 fprintf(stderr, "\t%rdi = 0x%.16lx (%ld)\n", state->rdi, state->rdi);
43 fprintf(stderr, "\t%r8 = 0x%.16lx (%ld)\n", state->r8 , state->r8);
44 fprintf(stderr, "\t%r9 = 0x%.16lx (%ld)\n", state->r9 , state->r9);
45 fprintf(stderr, "\t%r10 = 0x%.16lx (%ld)\n", state->r10, state->r10);
46 fprintf(stderr, "\t%r11 = 0x%.16lx (%ld)\n", state->r11, state->r11);
47 fprintf(stderr, "\t%r12 = 0x%.16lx (%ld)\n", state->r12, state->r12);
48 fprintf(stderr, "\t%r13 = 0x%.16lx (%ld)\n", state->r13, state->r13);
49 fprintf(stderr, "\t%r14 = 0x%.16lx (%ld)\n", state->r14, state->r14);
50 fprintf(stderr, "\t%r15 = 0x%.16lx (%ld)\n", state->r15, state->r15);
51 fprintf(stderr, "\t%rflags = %c%c%c%c%c\n\n",
52 (state->rflags & SF? 'S': '-'),
53 (state->rflags & ZF? 'Z': '-'),
54 (state->rflags & AF? 'A': '-'),
55 (state->rflags & PF? 'P': '-'),
56 (state->rflags & CF? 'C': '-'),
57 (state->rflags & OF? 'O': '-'));
58 fflush(stderr);
59 mutex_unlock(&mutex);
60}
61
62/*
63 * Init.

Callers

nothing calls this directly

Calls 5

mutex_lockFunction · 0.85
clearerrFunction · 0.85
fflushFunction · 0.85
mutex_unlockFunction · 0.85
fprintfFunction · 0.70

Tested by

no test coverage detected