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