PebbleOS
Loading...
Searching...
No Matches
Data Structures | Typedefs | Enumerations | Functions
debug.h File Reference
#include <pbl/kernel/compiler.h>
#include <pbl/kernel/thread.h>

Data Structures

struct  pbl_thread_info
 Thread as seen by pbl_thread_foreach(). More...
 
struct  pbl_thread_saved_regs
 Registers of a thread that is not running, read from its saved context. More...
 
struct  pbl_thread_stack_info
 Stack bounds and usage of a thread. More...
 
struct  pbl_thread_stats
 Run-time statistics of a thread. More...
 

Typedefs

typedef void(* pbl_thread_info_fn) (const struct pbl_thread_info *info, void *ctx)
 Callback of pbl_thread_foreach().
 

Enumerations

enum  pbl_thread_reg {
  PBL_THREAD_REG_R0 , PBL_THREAD_REG_R1 , PBL_THREAD_REG_R2 , PBL_THREAD_REG_R3 ,
  PBL_THREAD_REG_R4 , PBL_THREAD_REG_R5 , PBL_THREAD_REG_R6 , PBL_THREAD_REG_R7 ,
  PBL_THREAD_REG_R8 , PBL_THREAD_REG_R9 , PBL_THREAD_REG_R10 , PBL_THREAD_REG_R11 ,
  PBL_THREAD_REG_R12 , PBL_THREAD_REG_SP , PBL_THREAD_REG_LR , PBL_THREAD_REG_PC ,
  PBL_THREAD_REG_XPSR , PBL_THREAD_REG_COUNT
}
 Index of a register in pbl_thread_info::regs; the core dump format depends on it. More...
 

Functions

void pbl_thread_foreach (pbl_thread_info_fn fn, void *ctx)
 Visit every live thread with its saved registers.
 
void pbl_thread_saved_regs (const struct pbl_thread *t, struct pbl_thread_saved_regs *regs)
 Read the saved PC, LR and CONTROL of a thread.
 
void pbl_thread_stack_info (const struct pbl_thread *t, struct pbl_thread_stack_info *info)
 Get the stack bounds and high-water mark of a thread.
 
size_t pbl_thread_stats_snapshot (struct pbl_thread_stats *out, size_t max, uint32_t *total_run_time)
 Take a snapshot of the statistics of every live thread.
 
size_t pbl_thread_count (void)
 Count the live threads, including the idle thread.
 
void pbl_kernel_assert_failed (const char *filename, int line)
 Handle a failed kernel assertion.