Debugging and investigating on the robot¶
This section gives you some tips about debug and investigation methods on the robot.
Note that all the following is done logged over ssh on the robot.
For further details, see: Accessing NAO over ssh.
Debugging NAOqi development¶
Refer to Debugging C/C++ on the robot.
NAOqi issue report¶
Since the 1.14 release, a issue report generator is embedded in NAOqi.
When NAOqi ends prematurely in an unexpected way, an issue report is
generated in: /var/lib/minidump
.
To help us improving the software quality, feel free to send those reports to SoftBank Robotics.
Investigating system issues¶
In NAOqi OS, the logs are gathered by the journald service,
and can be showed using the journalctl
program.
The journal is reset at each power-down.
Diagnosis and reports¶
In case of weird behavior of the robot, the nao-diagnostic
program can gather
many data about the robot state into a tarball located by default in:
/home/nao/diagnosis
.
To help us improving the software quality, feel free to send those diagnosis to SoftBank Robotics.
Retrieving logs on the robot¶
Logs can be retrieved using journalctl
.
They can be filtered using grep
:
$ journalctl | grep "pattern"
They can also be filtered by NAOqi service:
$ journalctl -t audio.audio
$ journalctl -t system.Naoqi
$ journalctl -t naoqi-bin
$ journalctl -t expressivity.basicawareness
Also by priority:
$$ journalctl -a | grep "pattern"
Priority filter can either take level names or numbers among the following:
- “emerg” (0),
- “alert” (1),
- “crit” (2),
- “err” (3),
- “warning” (4),
- “notice” (5),
- “info” (6),
- “debug” (7).
Retrieving logs files on Desktop¶
On desktop you only get services logs.
Linux and MacOS¶
Log process | Logs file path |
---|---|
application.ServiceName | ${HOME}/.local/share/PackageManager/logs/application.ServiceName.log |
${HOME}/.local/share/PackageManager/logs/application.ServiceName_error.log | |
${HOME}/.local/share/PackageManager/logs/application.ServiceName.log.old | |
${HOME}/.local/share/PackageManager/logs/application.ServiceName_error.log.old |
Windows¶
Log process | Logs file path |
---|---|
application.ServiceName | %APPDATA%\PackageManager\logs\application.ServiceName.log |
%APPDATA%\PackageManager\logs\application.ServiceName_error.log | |
%APPDATA%\PackageManager\logs\application.ServiceName.log.old | |
%APPDATA%\PackageManager\logs\application.ServiceName_error.log.old |
Retrieving dump files on Desktop¶
Dumps are generated if:
- you create a breackpad handler
- you use qilaunch to create the handler for you
Linux and MacOS¶
Process | Dump files path |
---|---|
naoqi-bin | ${HOME}/.local/share/aldebaran/breakpad/naoqi-${_build_tag} |
naoqi-service | ${HOME}/.local/share/aldebaran/breakpad/naoqi_service-${_build_tag} |
qilaunch –name service_name | ${HOME}/.local/share/aldebaran/breakpad/service_name-${_build_tag} |
Windows¶
Process | Dump files path |
---|---|
naoqi-bin | %APPDATA%\aldebaran\breakpad\naoqi-${_build_tag} |
naoqi-service | %APPDATA%\aldebaran\breakpad\naoqi_service-${_build_tag} |
qilaunch –name service_name | %APPDATA%\aldebaran\breakpad\service_name-${_build_tag} |
Retrieving dump files on the robot¶
Dump files are created in /var/lib/minidump
.
For a given dump file, you can identify the program name by extracting the command line from the dump file:
minidump_dump [DUMP_FILE] CMD_LINE
Example:
$ minidump_dump MainEventLoop-2657-18446744073709551615.dmp CMD_LINE
Stream MD_LINUX_CMD_LINE:
/home/nao/.local/share/PackageManager/apps/dialog/./bin/qilaunch\0
--name\0
ALDialog\0
--legacy\0
dialog\0
--qi-url\0
tcp://127.0.0.1:9559\0