Dokumentacja pliku src/common/error.hpp

#include "src/tty/teletype.hpp"

Idź do kodu źródłowego tego pliku.

Komponenty

struct  eip_ebp

Definicje

#define save_eip_ebp(x)   do { asm volatile("x: movl $x, %0\nmovl %%ebp, %1":"=g"((x).eip),"=g"((x).ebp)); } while(0)
#define complain(text)
#define assert(val)   do { if (!(val)) {complain("assertion fail"); for(;;);} } while (0)
#define assertmsg(val, msg)   do { if (!(val)) {complain(msg); for(;;);} } while (0)
#define testif(val)   do { if (!(val)) {complain("tesif fail"); } } while(0)
#define testifmsg(val, msg)   do { if (!(val)) {complain(msg); } } while (0)
#define testifdbg(val)   do { if (!(val)) {complain("tesifdbg fail"); } } while(0)
#define testifdbgmsg(val, msg)   do { if (!(val)) {complain(msg); } } while (0)
#define lnDbg   do { alert("<< ");alert(__func__);alert(" : "); coutDec(__LINE__);write_bochs_num(__LINE__,10,10000,0); alert(">> \n");} while(0)
#define lnDb1   do { alert("<< ");alert(__func__);alert(" : "); coutDec(__LINE__);write_bochs_num(__LINE__,10,10000,0); alert(">> \n");} while(0)
#define lnDb2   do { alert("<< ");alert(__func__);alert(" : "); coutDec(__LINE__); write_bochs_num(__LINE__,10,10000,0); alert(">> \n");} while(0)
#define say(...)
#define sbg   do {sysfail_dbg=__LINE__;} while(0)
#define sysfail(reason)
#define notimpl(ret)   do { sysfail("not implemented"); return ret; } while(0)
#define STACK_TRACE_DUMP_ARGS   0

Funkcje

void panic () __attribute__((noreturn))
void init_dbg_val_map ()
uint32 get_dbg_val (uint32 key)
bool set_dbg_val (uint32 key, uint32 val)
void debug_dump_call_trace (uint32 eip, uint32 addr)
void debug_dump_call_trace ()
void put_bochs (char ch)
void write_bochs (const char *text)
void write_bochs (int i)
void write_bochs_num (uint32 n, uint32 radix, uint32 n_pos, char first_letter)
void alert (const char *text)
void alert (int i)
void alert2 (uint32 i)

Zmienne

const uint32 PORT_E9 = 0xe9
uint32 sysfail_dbg


Opis szczegółowy

Definicja w pliku error.hpp.


Dokumentacja definicji

#define assert ( val   )     do { if (!(val)) {complain("assertion fail"); for(;;);} } while (0)

#define assertmsg ( val,
msg   )     do { if (!(val)) {complain(msg); for(;;);} } while (0)

Definicja w linii 82 pliku error.hpp.

#define complain ( text   ) 

#define lnDb1   do { alert("<< ");alert(__func__);alert(" : "); coutDec(__LINE__);write_bochs_num(__LINE__,10,10000,0); alert(">> \n");} while(0)

Definicja w linii 90 pliku error.hpp.

#define lnDb2   do { alert("<< ");alert(__func__);alert(" : "); coutDec(__LINE__); write_bochs_num(__LINE__,10,10000,0); alert(">> \n");} while(0)

Definicja w linii 92 pliku error.hpp.

#define lnDbg   do { alert("<< ");alert(__func__);alert(" : "); coutDec(__LINE__);write_bochs_num(__LINE__,10,10000,0); alert(">> \n");} while(0)

Definicja w linii 88 pliku error.hpp.

Odwołania w Memory::Heap::heapbox::freeFuncPr2() i reboot().

#define notimpl ( ret   )     do { sysfail("not implemented"); return ret; } while(0)

#define save_eip_ebp (  )     do { asm volatile("x: movl $x, %0\nmovl %%ebp, %1":"=g"((x).eip),"=g"((x).ebp)); } while(0)

Definicja w linii 48 pliku error.hpp.

Odwołania w IPC::Lock::lock_t::lock().

#define say ( ...   ) 

Wartość:

do {\
                cout((char*)__FILE__);\
                cout(": ");\
                cout((char*)__func__);\
                cout(": "); \
                kprintf_alert(__VA_ARGS__);\
                cout("\n");\
                } while (0)

Definicja w linii 103 pliku error.hpp.

Odwołania w Thread::MemsetThread().

#define sbg   do {sysfail_dbg=__LINE__;} while(0)

Definicja w linii 113 pliku error.hpp.

Odwołania w Memory::Heap::heapbox::freeFuncPr().

#define sysfail ( reason   ) 

#define testif ( val   )     do { if (!(val)) {complain("tesif fail"); } } while(0)

#define testifdbg ( val   )     do { if (!(val)) {complain("tesifdbg fail"); } } while(0)

Definicja w linii 85 pliku error.hpp.

Odwołania w Net::Arp::arp_transmit() i Net::netbuf_alloc().

#define testifdbgmsg ( val,
msg   )     do { if (!(val)) {complain(msg); } } while (0)

Definicja w linii 86 pliku error.hpp.

#define testifmsg ( val,
msg   )     do { if (!(val)) {complain(msg); } } while (0)

Definicja w linii 84 pliku error.hpp.


Dokumentacja funkcji

void alert ( int  i  )  [inline]

Definicja w linii 61 pliku error.hpp.

Odwołuje się do cout() i write_bochs().

void alert ( const char *  text  )  [inline]

void alert2 ( uint32  i  )  [inline]

void debug_dump_call_trace (  ) 

Definicja w linii 159 pliku error.cpp.

void debug_dump_call_trace ( uint32  eip,
uint32  addr 
)

Definicja w linii 101 pliku error.cpp.

uint32 get_dbg_val ( uint32  key  ) 

key; meaning 0x71 0; 1-show stack trace on invalid free; 2-supress complains on invalid free

Definicja w linii 60 pliku error.cpp.

Odwołuje się do dbg_map_availlable, Collection::AvlMap< KeyT, DataT, cmp >::find(), Collection::Option< T >::get() i Collection::Option< T >::isNone().

void init_dbg_val_map (  ) 

Spostrzeżenia:
tylko literaly typu "elo" a nie rzeczy ze sterty albo stosu albo manipulacji lancuchami znakow bo porownywanie jest po adresie tekstu tylko do debugingu, forma globalnych zmiennych, nie thread-safe, malo reliable dla ciezkiego ilosciowo uzywania

Definicja w linii 52 pliku error.cpp.

void panic (  ) 

Błąd:
czy powinno clear interrupts?

Definicja w linii 82 pliku error.cpp.

void put_bochs ( char  ch  ) 

Definicja w linii 168 pliku error.cpp.

bool set_dbg_val ( uint32  key,
uint32  val 
)

void write_bochs ( int  i  ) 

Definicja w linii 202 pliku error.cpp.

void write_bochs ( const char *  text  ) 

Definicja w linii 174 pliku error.cpp.

void write_bochs_num ( uint32  n,
uint32  radix,
uint32  n_pos,
char  first_letter 
)

Definicja w linii 184 pliku error.cpp.


Dokumentacja zmiennych

const uint32 PORT_E9 = 0xe9

Definicja w linii 29 pliku error.hpp.

Odwołania w put_bochs() i write_bochs().


Wygenerowano Sat Jul 19 02:21:24 2008 dla panaLiX programem  doxygen 1.5.6