mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 08:24:32 -08:00
Added a function to get the callsite of the current function invocation.
27 lines
673 B
C
27 lines
673 B
C
#pragma once
|
|
/// \file debug.h
|
|
/// Debugging utilities
|
|
|
|
#include <stdint.h>
|
|
|
|
extern "C" {
|
|
uintptr_t get_rsp();
|
|
uintptr_t get_rip();
|
|
uintptr_t get_caller();
|
|
uintptr_t get_frame(int frame);
|
|
uintptr_t get_gsbase();
|
|
void _halt();
|
|
}
|
|
|
|
extern size_t __counter_syscall_enter;
|
|
extern size_t __counter_syscall_sysret;
|
|
|
|
void print_regs(const cpu_state ®s);
|
|
void print_stack(const cpu_state ®s);
|
|
void print_stacktrace(int skip);
|
|
|
|
#define print_regL(name, value) cons->printf(" %s: %016lx", name, (value));
|
|
#define print_regM(name, value) cons->printf(" %s: %016lx", name, (value));
|
|
#define print_regR(name, value) cons->printf(" %s: %016lx\n", name, (value));
|
|
|