Dipende dall'architettura su cui vuoi fare il debug e dal sistema operativo (ammesso che ce ne sia uno). Dipende molto a che livello vuoi arrivare, se vuoi farlo su windows, un'infarinatura la puoi avere anche con le API di debug su MSDN. Se invece nonn è così, devi studiare l'architettura e/o il kernel, le cui features/primitive, dovrebbero permettere il debug.