Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
installation_guide:debug:start [2016/05/23 10:42] – borja | installation_guide:debug:start [2020/06/17 10:03] – borja |
---|
====== Debug commands ====== | ====== Debug commands ====== |
| |
| ==== Enable Voximal module traces === |
| |
| Execute : |
| <code> |
| CLI> voximal debug |
| </code> |
| |
| |
| ==== Enable Voximal interpreter traces === |
| |
| Execute : |
| <code> |
| CLI> voximal debug interpreter |
| </code> |
| |
| ==== Generate a normal stop ==== |
| |
Clean stop of the Voximald process : | Clean stop of the Voximald process : |
</code> | </code> |
| |
Start the voximald process with Valgrid | ==== Powerful top monitor ==== |
| |
| Use the "htop" tool : |
| <code> |
| htop -p $(pidoff voximald) |
| </code> |
| |
| <code> |
| 1 [ 0.0%] Tasks: 33, 29 thr; 1 running |
| 2 [| 0.7%] Load average: 0.51 0.28 0.30 |
| 3 [ 0.0%] Uptime: 3 days, 01:39:39 |
| 4 [ 0.0%] |
| Mem[||| 175M/3.91G] |
| Swp[| 31.8M/7.81G] |
| |
| PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command |
| 1 root 20 0 199M 3316 2208 S 0.0 0.1 0:02.58 /sbin/init |
| 18890 root 20 0 56440 4164 3360 S 0.0 0.1 0:00.02 `- /lib/systemd/s |
| 18891 root 20 0 224M 1316 0 S 0.0 0.0 0:00.00 | `- (sd-pam) |
| 409 root 20 0 81156 1236 1068 S 0.0 0.0 0:00.95 `- /usr/lib/postf |
| 14487 postfix 20 0 83224 5088 4320 S 0.0 0.1 0:00.00 | `- pickup -l - |
| 412 postfix 20 0 83388 1916 1648 S 0.0 0.0 0:00.30 | `- qmgr -l -t |
| 308 root 20 0 350M 24556 19196 S 0.0 0.6 0:05.93 `- /usr/sbin/apac |
| 30788 www-data 20 0 350M 6752 1384 S 0.0 0.2 0:00.00 | `- /usr/sbin/a |
| 30787 www-data 20 0 350M 6752 1384 S 0.0 0.2 0:00.00 | `- /usr/sbin/a |
| 30786 www-data 20 0 350M 6752 1384 S 0.0 0.2 0:00.00 | `- /usr/sbin/a |
| 30785 www-data 20 0 350M 6752 1384 S 0.0 0.2 0:00.00 | `- /usr/sbin/a |
| 30784 www-data 20 0 350M 6752 1384 S 0.0 0.2 0:00.00 | `- /usr/sbin/a |
| 263 mysql 28 8 670M 38608 1668 S 0.0 0.9 1:55.94 `- /usr/sbin/mysq |
| 2808 mysql 20 0 670M 38608 1668 S 0.0 0.9 0:00.00 | `- /usr/sbin/m |
| F1Help F2Setup F3SearchF4FilterF5SortedF6CollapF7Nice -F8Nice +F9Kill F10Quit |
| </code> |
| |
| ==== Monitor memory/CPU ==== |
| |
| A very simple way to follow the memory and CPU indicators : |
| |
| <code> |
| root# top -b -d 5 -p $(pidof voximald) | awk -v OFS="," '$1+0>0 {print strftime("%Y-%m-%d %H:%M:%S"),$1,$NF,$5,$6,$7,$9,$10; fflush() }' | tee datas.csv |
| </code> |
| |
| ==== Valgrid using ==== |
| |
| The Asterisk module launch the interpreter by defaut, you need to disable it to be able to run the voximald process with Valgrid. |
| |
| To disable the Voximal launch from the Asterisk module edit and add this option in the voximal.conf : |
| |
| <code> |
| [general] |
| ... |
| launcher=no |
| ... |
| </code> |
| |
| Start the voximald process with Valgrid : |
| |
| <code> |
| #root valgrind --tool=memcheck --leak-check=full --log-file="logfile.out" /usr/sbin/voximald -channels 1 -config /etc/openvxi/client.cfg -user asterisk -group asterisk |
| </code> |
| |
| And run the Asterisk. |
| |
| <code> |
| asterisk -cvvvvv -U asterisk -G asterisk -g |
| </code> |
| |
| ==== VoiceXML Log levels ==== |
| |
| Format : |
| |
| <code> |
| |
| Diagnostic |
| date/time | threadID | sessionID or mark | tagID | subtag | text |
| |
| Error |
| date/time | threadID | sessionID or -1 | 0 | severity | modulename | errorID | errorText | appends |
| |
| Event |
| date/time | threadID | sessionID | EVENT | 0|evenID | appends |
| </code> |
| |
| Logging example : |
| |
| <code> |
| ... |
| Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Locked |
| Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessEnd Unlock |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiGetVar|exiting: returned 0, 0x7f82daeb34e0 (0x7f82d419a750) |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|8002|fr.ulex.vxi|VXI::assign_element(set value : id=08facd13i9e0q9o1m4vav8ghvn8tbagn21bfcb5) |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|5001|VXIpromptWait|VXIprompt |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|5001|VXIpromptWait|Waiting PROMPT |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|5001|VXIpromptWait|EVT < 1 : prompt|session=1|item=1|result=ok |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|8002|fr.ulex.vxi|VXI::DoInnerJump() |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiCheckVar|entering: 0x7f82d412af00, '$_internalName_31627' |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4004|JsiContext::CheckVar|Check variable $_internalName_31627, context 0x7f82d41656e0 |
| Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Lock |
| Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Locked |
| Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessEnd Unlock |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiCheckVar|exiting: returned 0 |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiCheckVar|entering: 0x7f82d412af00, '$_internalName_31628' |
| Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4004|JsiContext::CheckVar|Check variable $_internalName_31628, context 0x7f82d41656e0 |
| Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Lock |
| ... |
| </code> |
| |
| |
| The default log bases (used to define tagIDs) : |
| |
| <code> |
| client.cache.diagLogBase VXIInteger 2000 |
| client.inet.diagLogBase VXIInteger 3000 |
| client.jsi.diagLogBase VXIInteger 4000 |
| client.prompt.diagLogBase VXIInteger 5000 |
| client.rec.diagLogBase VXIInteger 6000 |
| client.tel.diagLogBase VXIInteger 7000 |
| client.vxi.diagLogBase VXIInteger 8000 |
| client.object.diagLogBase VXIInteger 9000 |
| client.client.diagLogBase VXIInteger 10000 |
| </code> |
| |
| |
| === Interet connector === |
| |
| <code> |
| <DiagnosticMessages moduleName="*SBinet"> |
| <diag tag="0">SBinet: API trace </diag> |
| <diag tag="1">SBinet: Channel diagnostics </diag> |
| <diag tag="2">SBinet: Stream diagnostics </diag> |
| <diag tag="3">SBinet: Cookie diagnostics </diag> |
| <diag tag="4">SBinet: Validator diagnostics </diag> |
| <diag tag="5">SBinet: Cache diagnostics </diag> |
| <diag tag="6">SBinet: Timing diagnostics </diag> |
| <diag tag="10">SBinet: Dump HTTP requests and responses </diag> |
| |
| </DiagnosticMessages> |
| </code> |
| |
| |
| === Cache === |
| |
| <code> |
| <DiagnosticMessages moduleName="*SBcache"> |
| <diag tag="0">SBcache: API trace </diag> |
| <diag tag="1">SBcache: Cache manager diagnostics </diag> |
| <diag tag="2">SBcache: Cache entry diagnostics </diag> |
| <diag tag="3">SBcache: Cache stream diagnostics </diag> |
| <diag tag="4">SBcache: Cache entry table mutex diagnostics </diag> |
| <diag tag="5">SBcache: Cache entry mutex diagnostics </diag> |
| </DiagnosticMessages> |
| </code> |
| |
| |
| === EcmaScript interpreter === |
| |
| <code> |
| <DiagnosticMessages moduleName="*SBjsi"> |
| <diag tag="0">SBjsi: API trace </diag> |
| <diag tag="1">SBjsi: JavaScript context diagnostics </diag> |
| <diag tag="2">SBjsi: JavaScript garbage collection trace </diag> |
| <diag tag="4">SBjsi: JavaScript scope diagnostics </diag> |
| <diag tag="200">SBjsi: Native ScriptEase error messages </diag> |
| <diag tag="201">SBjsi: ScriptEase debug log messages </diag> |
| </DiagnosticMessages> |
| </code> |
| |
| === Client main === |
| |
| <code> |
| <DiagnosticMessages moduleName="*OSBclient"> |
| <diag tag="0">OSBclient: API trace </diag> |
| <diag tag="1">OSBclient: Component names and versions </diag> |
| <diag tag="2">OSBclient: General diagnostics </diag> |
| </DiagnosticMessages> |
| </code> |
| |
| |
| === Objects === |
| |
| <code> |
| <DiagnosticMessages moduleName="*OSBobject"> |
| <diag tag="0">OSBobject: API trace </diag> |
| </DiagnosticMessages> |
| </code> |
| |
| === VoiceXML interpreter (VXI) === |
| |
| <code> |
| <DiagnosticMessages moduleName="*.vxi"> |
| <diag tag="0">VXI: VoiceXML document and application warnings</diag> |
| <diag tag="1">VXI: VoiceXML log element output</diag> |
| <diag tag="2">VXI: VoiceXML element logging</diag> |
| <diag tag="3">VXI: VoiceXML grammar logging</diag> |
| <diag tag="4">VXI: VoiceXML transitions</diag> |
| <diag tag="5">VXI: VoiceXML log Contents (VoiceXML and Data XML/Json)</diag> |
| </DiagnosticMessages> |
| </code> |
| |
| === Telephony === |
| |
| <code> |
| <DiagnosticMessages moduleName="*.VXItel"> |
| <diag tag="0">VXItel: Signaling trace </diag> |
| </DiagnosticMessages> |
| </code> |
| |
| |
| === Prompt === |
| |
| <code> |
| <DiagnosticMessages moduleName="*.VXIprompt"> |
| <diag tag="0">VXIprompt: Prompting trace </diag> |
| </DiagnosticMessages> |
| </code> |
| |
| |
| === Recognize === |
<code> | <code> |
#root valgrind --tool=memcheck --leak-check=full --log-file="logfile.out" /usr/sbin/openvxi -channels 2 -config /etc/openvxi/client.cfg | <DiagnosticMessages moduleName="*.VXIrec"> |
| <diag tag="0">VXIrec: Recognition trace </diag> |
| <diag tag="1">VXIrec: Grammar trace </diag> |
| </DiagnosticMessages> |
</code> | </code> |