handle SIGPIPE pass noprint nostop handle SIGTTIN pass noprint nostop # FreeSWITCH Custom GDB commands define list_sessions dont-repeat printf "Listing sessions: \n" set $i = 0 set $idx = 0 set $len = session_manager.session_table->tablelength while($idx < $len) set $x = session_manager.session_table->table[$idx] while($x != 0x0) printf "uuid %s is at %p\n", $x->k, $x->v set $i = $i + 1 set $x = $x->next end set $idx = $idx + 1 end printf "Found %d sessions.\n", $i end document list_sessions Print a list of session uuid and pointers end define hash_it_str dont-repeat set $i = 0 set $idx = 0 set $len = $arg0->tablelength printf "len: %d\n", $arg0->tablelength while($idx < $len) set $x = $arg0->table[$idx] while($x != 0x0) printf "key: %s valueptr: %p\n", $x->k, $x->v set $x = $x->next set $i = $i + 1 end set $idx = $idx + 1 end end document hash_it_str Usage: hash_it_str [hashtable] Prints the content of a hashtable displaying the key as a string and the value as pointer end define hash_it_str_x dont-repeat set $i = 0 set $idx = 0 set $len = $arg0->tablelength while($idx < $len) set $x=$arg0->table->[$idx] while($x != 0x0) printf "key: %s\n", $x->k print (($arg1*)$x->v)->$arg2 printf "\n\n" set $x = $x->next set $i = $i + 1 end end end document hash_it_str_x Usage: hash_it_str_x [hashtable] [value_type] [member] Prints the content of a hashtable displaying the key as a string and a specific member of the value struct. Args: hashtable value_type member end define event_dump dont-repeat set $x = $arg0->headers while($x != 0x0) printf "%s = %s\n", $x->name, $x->value set $x = $x->next end end document event_dump Usage: event_dump [switch_event_t*] Print an event's headers and values end define print_list dont-repeat set $x = $arg0 while ($x != 0x0) print *$x set $x = $x->next end end document print_list Usage print_list [symbol] Prints all the remaining elements of a linked list end define print_tags dont-repeat set $x = $arg0 while (*((int*)$x) != 0x0) info sym $x->t_tag printf "%p \"%s\"\n", $x->t_value, $x->t_value set $x = $x + 1 end end document print_tags Usage print_tags [tags] List sofia tags and their values end define setup_session set $session=(switch_core_session_t*)$arg0 set $channel = $session->channel printf "UUID: %s\nName: %s\nState: %d\n", $session->uuid_str, $channel->name, $channel->state end document setup_session Usage setup_session [session address] Sets session and channel from the given address end define setup_sofia set $tech_pvt = (private_object_t*)$session->private_info set $nh = $tech_pvt->nh end document setup_sofia No arguments. Sets nh and tech_pvt from the current session end