void CPU_dump(CPU_t* cpu) { assert(cpu); printf("\n CPU //\n\n"); printf(" # register ax = %d\n", cpu->ax); Stack_dump(cpu->stack_cpu); }
int full(stack *my_stack) { if (Stack_OK(my_stack)) Stack_dump(my_stack); if(my_stack->size == my_stack->Max) return -1; else return 0; }
//show last element double topp(stack *my_stack) { errno = 0; Stack_OK(my_stack); if (!errno) return my_stack->top; else Stack_dump(my_stack); return -1; }
// clear stack int clear(stack *my_stack) { Stack_OK(my_stack); if (Stack_OK(my_stack)) Stack_dump(my_stack); else { my_stack->data = 0; errno = 0; return 0; } return -1; }
int Stack_pop(Stack_t* st) { if (--st->counter >= 0) return st->data[st->counter]; else if (!Stack_ok(st)) { Stack_dump(st); assert(!" # Stack is empty # "); } else return 0xBAD; }
int Stack_push(Stack_t* st, elem_t num) { if (!Stack_ok(st)) { Stack_dump(st); assert(!" # Stack overflow # "); } st->data[st->counter++] = num; if (!Stack_ok(st)) {return 0;} else { return 1; } }
static void shutdown_handler(int signo) { const char *signame = signames[signo]; if (!signame) { signame = "unknown"; } const char threadname[17] = "thread"; #ifdef HAVE_PRCTL { prctl(PR_GET_NAME, threadname); } #endif fprintf(stderr, "%s: caught signal %d (%s)\n", threadname, signo, signame); Stack_dump(); _exit(signo); }
static void usr1_handler(int signo) { Stack_dump(); }