/* Breakpoints are enter through trap table entry 126. So in sparc assembly *ifyouwanttodropintothedebuggeryoudo: * *tDEBUG_BP_TRAP
*/
#define DEBUG_BP_TRAP 126
#ifndef __ASSEMBLY__ /* The debug vector is passed in %o1 at boot time. It is a pointer to *astructureinthedebuggersaddressspace.Hereisitsformat.
*/
typedefunsignedint (*debugger_funct)(void);
struct kernel_debug { /* First the entry point into the debugger. You jump here *togivecontrolovertothedebugger.
*/ unsignedlong kdebug_entry; unsignedlong kdebug_trapme; /* Figure out later... */ /* The following is the number of pages that the debugger has *takenfromtototalpool.
*/ unsignedlong *kdebug_stolen_pages; /* Ok, after you remap yourself and/or change the trap table *fromwhatyouwereleftwithatboottimeyouhavetocall *thissynchronizationfunctionsothedebuggercancheckout *whatyouhavedone.
*/
debugger_funct teach_debugger;
}; /* I think that is it... */
externstruct kernel_debug *linux_dbvec;
/* Use this macro in C-code to enter the debugger. */ staticinlinevoid sp_enter_debugger(void)
{
__asm__ __volatile__("jmpl %0, %%o7\n\t" "nop\n\t" : : "r" (linux_dbvec) : "o7", "memory");
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.