File indexing completed on 2026-04-09 07:49:33
0001 #pragma once
0002
0003 struct SDBG
0004 {
0005 enum { NONE, BACKTRACE, SUMMARY, CALLER, INTERRUPT } ;
0006
0007 static constexpr const char* BACKTRACE_ = "backtrace" ;
0008 static constexpr const char* SUMMARY_ = "summary" ;
0009 static constexpr const char* CALLER_ = "caller" ;
0010 static constexpr const char* INTERRUPT_ = "interrupt" ;
0011
0012 static const char* Name(unsigned action);
0013 static unsigned Action(const char* );
0014
0015 };
0016
0017 inline const char* SDBG::Name(unsigned action)
0018 {
0019 const char* s = nullptr ;
0020 switch(action)
0021 {
0022 case BACKTRACE: s = BACKTRACE_ ; break ;
0023 case SUMMARY: s = SUMMARY_ ; break ;
0024 case CALLER: s = CALLER_ ; break ;
0025 case INTERRUPT: s = INTERRUPT_ ; break ;
0026 }
0027 return s ;
0028 }
0029
0030 inline unsigned SDBG::Action(const char* action_)
0031 {
0032 unsigned action = NONE ;
0033 if(strcmp(action_, BACKTRACE_) == 0 ) action = BACKTRACE ;
0034 if(strcmp(action_, SUMMARY_) == 0 ) action = SUMMARY ;
0035 if(strcmp(action_, CALLER_) == 0 ) action = CALLER ;
0036 if(strcmp(action_, INTERRUPT_) == 0 ) action = INTERRUPT ;
0037 return action ;
0038 }
0039
0040