diff options
Diffstat (limited to 'scratch/writer/gdbinit-cbosdo')
-rw-r--r-- | scratch/writer/gdbinit-cbosdo | 726 |
1 files changed, 0 insertions, 726 deletions
diff --git a/scratch/writer/gdbinit-cbosdo b/scratch/writer/gdbinit-cbosdo deleted file mode 100644 index 2f773ed29..000000000 --- a/scratch/writer/gdbinit-cbosdo +++ /dev/null @@ -1,726 +0,0 @@ -handle SIGPWR nostop noprint -handle SIGXCPU nostop noprint -handle SIG33 nostop noprint - -# define "pu" command to display sal_Unicode * -def pu - set $uni = $arg0 - set $len = $arg1 - set $i = 0 - printf "\"" - while (*$uni && $i++<$len && $i<255) - if (*$uni < 0x80) - printf "%c", *(char*)$uni++ - else - printf "\\x%x", *(short*)$uni++ - end - end - printf "\"\n" -end - -# define "pus" command to display rtl_uString -def pus - if ($arg0.buffer) - pu $arg0.buffer $arg0.length - else - print "Invalid/non-initialized rtl_uString." - end -end - -# define "pou" command to display rtl::OUString -def pou - if ($arg0.pData) - pus $arg0.pData - else - print "Invalid/non-initialized OUString." - end -end - -# define "ptu" command to display tools (Uni)String -def ptu - if ($arg0.mpData) - pu $arg0.mpData->maStr $arg0.mpData->mnLen - else - print "Invalid/non-initialized tools String." - end -end - -define pIndent - set $level = $arg0 - set $iLevel = 0 - while ( $iLevel < $level ) - printf "\t" - set $iLevel = $iLevel + 1 - end -end - -define pNodeType - if ($sw_node->nNodeType==1) - printf "ND_ENDNODE " - end - if ($sw_node->nNodeType==2) - printf "ND_STARTNODE " - end - if ($sw_node->nNodeType==6) - printf "ND_TABLENODE " - end - if ($sw_node->nNodeType==8) - printf "ND_TEXTNODE " - end - if ($sw_node->nNodeType==0x10) - printf "ND_GRFNODE " - end - if ($sw_node->nNodeType==0x20) - printf "ND_OLENODE " - end - if ($sw_node->nNodeType==0x38) - printf "ND_CONTENTNODE " - end - if ($sw_node->nNodeType==0x30) - printf "ND_NOTXTNODE " - end - if ($sw_node->nNodeType==0x42) - printf "ND_SECTIONNODE " - end -end - -define dump_pSfxItemSet - printf "count=%i\n", $arg0->_nCount - set $is_i=0 - set $is_k=0 - while($arg0->_pWhichRanges[$is_i]!=0) - printf "[%i; %i]\n", $arg0->_pWhichRanges[$is_i], $arg0->_pWhichRanges[$is_i+1] - set $is_j=$arg0->_pWhichRanges[$is_i] - while($is_j<=$arg0->_pWhichRanges[$is_i+1]) - if ($arg0->_aItems[$is_k]!=0) - printf "%i %i %p\n", $is_k, $is_j, $arg0->_aItems[$is_k] - end - set $is_j++ - set $is_k++ - end - set $is_i=$is_i+2 - end -end - - -define dump_pSwUndo - set $su_i=0 - while ($su_i<$arg0->nA) - set $su_n=((SwUndo**)($arg0->pData))[$su_i] - printf "%i %p %i\n", $su_i, $su_n, $su_n->nId - set $su_i++ - end -end - -define pnodesarr - set $sw_size = $arg0->nSize - set $iNodes = 0 - set $indent = 0 - while ( $iNodes++<$sw_size && $iNodes<255 ) - set $sw_node=$arg0[$iNodes-1] - - if ( $sw_node->nNodeType == 1 ) - set $indent = $indent - 1 - end - - pIndent $indent - - printf "%d ", $iNodes - 1 - pNodeType -# printf "- SoS: %d", $sw_node->pStartOfSection->nOffset - - if ( $sw_node->nNodeType == 2 || $sw_node->nNodeType == 6 || $sw_node->nNodeType == 0x42 ) - printf ", EoS: %d", $sw_node->GetStartNode( )->pEndOfSection->nOffset - set $indent = $indent + 1 - end - - if ( $sw_node->IsTxtNode( ) ) - printf ", Text: " - set $sw_txt = $sw_node->GetTxtNode( )->GetTxt() - ptu $sw_txt - else - printf "\n" - end - end -end - -########################################## -# # -# STL GDB evaluators/views/utilities # -# # -########################################## -# -# The new GDB commands: -# are entirely non instrumental -# do not depend on any "inline"(s) - e.g. size(), [], etc -# are extremely tolerant to debugger settings -# -# This file should be "included" in .gdbinit as following: -# source stl-views.gdb or just paste it into your .gdbinit file -# -# The following STL containers are currently supported: -# -# std::vector<T> -- via pvector command -# std::list<T> -- via plist command -# std::map<T,T> -- via pmap command -# std::multimap<T,T> -- via pmap command -# std::set<T> -- via pset command -# std::multiset<T> -- via pset command -# std::deque<T> -- via pdequeue command -# std::stack<T> -- via pstack command -# std::queue<T> -- via pqueue command -# std::priority_queue<T> -- via ppqueue command -# std::bitset<n> -- via pbitset command -# std::string -- via pstring command -# std::widestring -- via pwstring command -# -# The end of this file contains (optional) C++ beautifiers -# -########################################################################## -# # -# CopyRight @ 2008 - Dan C Marinescu - All Rights Reserved under GPL V3. # -# # -# Email: dan_c_marinescu.TakeThisOut@yahoo.com # -# # -########################################################################## - - - -# -# std::vector<> -# - -define pvector -if $argc == 0 -help pvector -else -set $size = $arg0._M_impl._M_finish - $arg0._M_impl._M_start -set $capacity = $arg0._M_impl._M_end_of_storage - $arg0._M_impl._M_start -set $size_max = $size - 1 -end -if $argc == 1 -set $i = 0 -while $i < $size -printf "elem[%u]: ", $i -p *($arg0._M_impl._M_start + $i) -set $i++ -end -end -if $argc == 2 -set $idx = $arg1 -if $idx < 0 || $idx > $size_max -printf "idx1, idx2 are not in acceptable range: [0..%u].\n", $size_max -else -printf "elem[%u]: ", $idx -p *($arg0._M_impl._M_start + $idx) -end -end -if $argc == 3 -set $start_idx = $arg1 -set $stop_idx = $arg2 -if $start_idx > $stop_idx -set $tmp_idx = $start_idx -set $start_idx = $stop_idx -set $stop_idx = $tmp_idx -end -if $start_idx < 0 || $stop_idx < 0 || $start_idx > $size_max || $stop_idx > $size_max -printf "idx1, idx2 are not in acceptable range: [0..%u].\n", $size_max -else -set $i = $start_idx -while $i <= $stop_idx -printf "elem[%u]: ", $i -p *($arg0._M_impl._M_start + $i) -set $i++ -end -end -end -if $argc > 0 -printf "Vector size = %u\n", $size -printf "Vector capacity = %u\n", $capacity -printf "Element " -whatis $arg0._M_impl._M_start -end -end - -document pvector -Prints std::vector<T> information. -Syntax: pvector <vector> <idx1> <idx2> -Note: idx, idx1 and idx2 must be in acceptable range [0..<vector>.size()-1]. -Examples: -pvector v - Prints vector content, size, capacity and T typedef -pvector v 0 - Prints element[idx] from vector -pvector v 1 2 - Prints elements in range [idx1..idx2] from vector -end - - - -# -# std::list<> -# - -define plist -if $argc == 0 -help plist -else -set $head = &$arg0._M_impl._M_node -set $current = $arg0->_M_impl->_M_node->_M_next -set $size = 0 -while $current != $head -if $argc == 2 -printf "elem[%u]: ", $size -p *($arg1*)($current + 1) -end -if $argc == 3 -if $size == $arg2 -printf "elem[%u]: ", $size -p *($arg1*)($current + 1) -end -end -set $current = $current->_M_next -set $size++ -end -printf "List size = %u \n", $size -if $argc == 1 -printf "List " -whatis $arg0 -printf "Use plist <variable_name> <element_type> to see the elements in the list.\n" -end -end -end - -document plist -Prints std::list<T> information. -Syntax: plist <list> <T> <idx>: Prints list size, if T defined all elements or just element at idx -Examples: -plist l - prints list size and definition -plist l int - prints all elements and list size -plist l int 2 - prints the third element in the list (if exists) and list size -end - - - -# -# std::map and std::multimap -# - -define pmap -if $argc == 0 -help pmap -else -set $tree = $arg0 -set $i = 0 -set $node = $tree->_M_t->_M_impl->_M_header->_M_left -set $end = $tree->_M_t->_M_impl->_M_header -set $tree_size = $tree->_M_t->_M_impl->_M_node_count -if $argc == 1 -printf "Map " -whatis $tree -printf "Use pmap <variable_name> <left_element_type> <right_element_type> to see the elements in the map.\n" -end -if $argc == 3 -while $i < $tree_size -set $value = (void *)($node + 1) -printf "elem[%u]->left: ", $i -p *($arg1*)$value -set $value = $value + 4 -printf "elem[%u]->right: ", $i -p *($arg2*)$value -if $node->_M_right != 0 -set $node = $node->_M_right -while $node->_M_left != 0 -set $node = $node->_M_left -end -else -set $tmp_node = $node->_M_parent -while $node == $tmp_node->_M_right -set $node = $tmp_node -set $tmp_node = $tmp_node->_M_parent -end -if $node->_M_right != $tmp_node -set $node = $tmp_node -end -end -set $i++ -end -end -if $argc == 4 -set $idx = $arg3 -set $ElementsFound = 0 -while $i < $tree_size -set $value = (void *)($node + 1) -if *($arg1*)$value == $idx -printf "elem[%u]->left: ", $i -p *($arg1*)$value -set $value = $value + 4 -printf "elem[%u]->right: ", $i -p *($arg2*)$value -set $ElementsFound++ -end -if $node->_M_right != 0 -set $node = $node->_M_right -while $node->_M_left != 0 -set $node = $node->_M_left -end -else -set $tmp_node = $node->_M_parent -while $node == $tmp_node->_M_right -set $node = $tmp_node -set $tmp_node = $tmp_node->_M_parent -end -if $node->_M_right != $tmp_node -set $node = $tmp_node -end -end -set $i++ -end -printf "Number of elements found = %u\n", $ElementsFound -end -if $argc == 5 -set $idx1 = $arg3 -set $idx2 = $arg4 -set $ElementsFound = 0 -while $i < $tree_size -set $value = (void *)($node + 1) -set $valueLeft = *($arg1*)$value -set $valueRight = *($arg2*)($value + 4) -if $valueLeft == $idx1 && $valueRight == $idx2 -printf "elem[%u]->left: ", $i -p $valueLeft -printf "elem[%u]->right: ", $i -p $valueRight -set $ElementsFound++ -end -if $node->_M_right != 0 -set $node = $node->_M_right -while $node->_M_left != 0 -set $node = $node->_M_left -end -else -set $tmp_node = $node->_M_parent -while $node == $tmp_node->_M_right -set $node = $tmp_node -set $tmp_node = $tmp_node->_M_parent -end -if $node->_M_right != $tmp_node -set $node = $tmp_node -end -end -set $i++ -end -printf "Number of elements found = %u\n", $ElementsFound -end -printf "Map size = %u\n", $tree_size -end -end - -document pmap -Prints std::map<TLeft and TRight> or std::multimap<TLeft and TRight> information. Works for std::multimap as well. -Syntax: pmap <map> <TtypeLeft> <TypeRight> <valLeft> <valRight>: Prints map size, if T defined all elements or just element(s) with val(s) -Examples: -pmap m - prints map size and definition -pmap m int int - prints all elements and map size -pmap m int int 20 - prints the element(s) with left-value = 20 (if any) and map size -pmap m int int 20 200 - prints the element(s) with left-value = 20 and right-value = 200 (if any) and map size -end - - - -# -# std::set and std::multiset -# - -define pset -if $argc == 0 -help pset -else -set $tree = $arg0 -set $i = 0 -set $node = $tree->_M_t->_M_impl->_M_header->_M_left -set $end = $tree->_M_t->_M_impl->_M_header -set $tree_size = $tree->_M_t->_M_impl->_M_node_count -if $argc == 1 -printf "Set " -whatis $tree -printf "Use pset <variable_name> <element_type> to see the elements in the set.\n" -end -if $argc == 2 -while $i < $tree_size -set $value = (void *)($node + 1) -printf "elem[%u]: ", $i -p *($arg1*)$value -if $node->_M_right != 0 -set $node = $node->_M_right -while $node->_M_left != 0 -set $node = $node->_M_left -end -else -set $tmp_node = $node->_M_parent -while $node == $tmp_node->_M_right -set $node = $tmp_node -set $tmp_node = $tmp_node->_M_parent -end -if $node->_M_right != $tmp_node -set $node = $tmp_node -end -end -set $i++ -end -end -if $argc == 3 -set $idx = $arg2 -set $ElementsFound = 0 -while $i < $tree_size -set $value = (void *)($node + 1) -if *($arg1*)$value == $idx -printf "elem[%u]: ", $i -p *($arg1*)$value -set $ElementsFound++ -end -if $node->_M_right != 0 -set $node = $node->_M_right -while $node->_M_left != 0 -set $node = $node->_M_left -end -else -set $tmp_node = $node->_M_parent -while $node == $tmp_node->_M_right -set $node = $tmp_node -set $tmp_node = $tmp_node->_M_parent -end -if $node->_M_right != $tmp_node -set $node = $tmp_node -end -end -set $i++ -end -printf "Number of elements found = %u\n", $ElementsFound -end -printf "Set size = %u\n", $tree_size -end -end - -document pset -Prints std::set<T> or std::multiset<T> information. Works for std::multiset as well. -Syntax: pset <set> <T> <val>: Prints set size, if T defined all elements or just element(s) having val -Examples: -pset s - prints set size and definition -pset s int - prints all elements and the size of s -pset s int 20 - prints the element(s) with value = 20 (if any) and the size of s -end - - - -# -# std::dequeue -# - -define pdequeue -if $argc == 0 -help pdequeue -else -set $size = 0 -set $start_cur = $arg0._M_impl._M_start._M_cur -set $start_last = $arg0._M_impl._M_start._M_last -set $start_stop = $start_last -while $start_cur != $start_stop -p *$start_cur -set $start_cur++ -set $size++ -end -set $finish_first = $arg0._M_impl._M_finish._M_first -set $finish_cur = $arg0._M_impl._M_finish._M_cur -set $finish_last = $arg0._M_impl._M_finish._M_last -if $finish_cur < $finish_last -set $finish_stop = $finish_cur -else -set $finish_stop = $finish_last -end -while $finish_first != $finish_stop -p *$finish_first -set $finish_first++ -set $size++ -end -printf "Dequeue size = %u\n", $size -end -end - -document pdequeue -Prints std::dequeue<T> information. -Syntax: pdequeue <dequeue>: Prints dequeue size, if T defined all elements -Deque elements are listed "left to right" (left-most stands for front and right-most stands for back) -Example: -pdequeue d - prints all elements and size of d -end - - - -# -# std::stack -# - -define pstack -if $argc == 0 -help pstack -else -set $start_cur = $arg0.c._M_impl._M_start._M_cur -set $finish_cur = $arg0.c._M_impl._M_finish._M_cur -set $size = $finish_cur - $start_cur -set $i = $size - 1 -while $i >= 0 -p *($start_cur + $i) -set $i-- -end -printf "Stack size = %u\n", $size -end -end - -document pstack -Prints std::stack<T> information. -Syntax: pstack <stack>: Prints all elements and size of the stack -Stack elements are listed "top to buttom" (top-most element is the first to come on pop) -Example: -pstack s - prints all elements and the size of s -end - - - -# -# std::queue -# - -define pqueue -if $argc == 0 -help pqueue -else -set $start_cur = $arg0.c._M_impl._M_start._M_cur -set $finish_cur = $arg0.c._M_impl._M_finish._M_cur -set $size = $finish_cur - $start_cur -set $i = 0 -while $i < $size -p *($start_cur + $i) -set $i++ -end -printf "Queue size = %u\n", $size -end -end - -document pqueue -Prints std::queue<T> information. -Syntax: pqueue <queue>: Prints all elements and the size of the queue -Queue elements are listed "top to bottom" (top-most element is the first to come on pop) -Example: -pqueue q - prints all elements and the size of q -end - - - -# -# std::priority_queue -# - -define ppqueue -if $argc == 0 -help ppqueue -else -set $size = $arg0.c._M_impl._M_finish - $arg0.c._M_impl._M_start -set $capacity = $arg0.c._M_impl._M_end_of_storage - $arg0.c._M_impl._M_start -set $i = $size - 1 -while $i >= 0 -p *($arg0.c._M_impl._M_start + $i) -set $i-- -end -printf "Priority queue size = %u\n", $size -printf "Priority queue capacity = %u\n", $capacity -end -end - -document ppqueue -Prints std::priority_queue<T> information. -Syntax: ppqueue <priority_queue>: Prints all elements, size and capacity of the priority_queue -Priority_queue elements are listed "top to buttom" (top-most element is the first to come on pop) -Example: -ppqueue pq - prints all elements, size and capacity of pq -end - - - -# -# std::bitset -# - -define pbitset -if $argc == 0 -help pbitset -else -p /t $arg0._M_w -end -end - -document pbitset -Prints std::bitset<n> information. -Syntax: pbitset <bitset>: Prints all bits in bitset -Example: -pbitset b - prints all bits in b -end - - - -# -# std::string -# - -define pstring -if $argc == 0 -help pstring -else -printf "String \t\t\t= \"%s\"\n", $arg0._M_data() -printf "String size/length \t= %u\n", $arg0._M_rep()->_M_length -printf "String capacity \t= %u\n", $arg0._M_rep()->_M_capacity -printf "String ref-count \t= %d\n", $arg0._M_rep()->_M_refcount -end -end - -document pstring -Prints std::string information. -Syntax: pstring <string> -Example: -pstring s - Prints content, size/length, capacity and ref-count of string s -end - - - -# -# std::wstring -# - -define pwstring -if $argc == 0 -help pwstring -else -call printf("WString \t\t= \"%ls\"\n", $arg0._M_data()) -printf "WString size/length \t= %u\n", $arg0._M_rep()->_M_length -printf "WString capacity \t= %u\n", $arg0._M_rep()->_M_capacity -printf "WString ref-count \t= %d\n", $arg0._M_rep()->_M_refcount -end -end - -document pwstring -Prints std::wstring information. -Syntax: pwstring <wstring> -Example: -pwstring s - Prints content, size/length, capacity and ref-count of wstring s -end - - - -# -# C++ related beautifiers -# - -#set print pretty on -#set print object on -#set print static-members on -#set print vtbl on -#set print demangle on -#set demangle-style gnu-v3 -#set print sevenbit-strings off |