lsa-pucrs / donnie-assistive-robot-sw

Donnie's software (Arduino Firmware, Player Drivers, Stage simulation models, RPi software)
http://donnie-manual.readthedocs.io
GNU General Public License v3.0
6 stars 0 forks source link

GoDonnie crashes while running .gd file #119

Closed amamory closed 6 years ago

amamory commented 6 years ago

The error is in this part of the /donnie-assistive-robot-sw/client/godonnie/GoDonnie.cpp, line145, branch feature-vib-belt-v2 but it seems to reproduce to other branches as well. User ccmake to compile Donnie for debug.

     case 'f': // script file  mode
        filename = optarg;
        scriptMode=1;
$ **gdb GoDonnie** 
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from GoDonnie...done.
(gdb) **run -f /opt/donnie/test/GoDonnie/square.gd**
Starting program: /opt/donnie/bin/GoDonnie -f /opt/donnie/test/GoDonnie/square.gd
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
playerc warning   : warning : [Player v.3.0.2] connected on [localhost:6665] with sock 3

[New Thread 0x7fffedb62700 (LWP 4673)]

Thread 1 "GoDonnie" received signal SIGSEGV, Segmentation fault.
0x00007ffff6637746 in strlen () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) **where**
#0  0x00007ffff6637746 in **strlen ()** from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6cac264 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x000000000043a65b in main (argc=3, argv=0x7fffffffdb58) at /home/osboxes/donnie_2018/donnie-assistive-robot-sw/client/godonnie/GoDonnie.cpp:145
amamory commented 6 years ago

issue related to getopt

the old code was

while ((c = getopt (argc, argv, "mMlLtThHfF:")) != -1){

but expected was

while ((c = getopt (argc, argv, "mMlLtThHf:F:")) != -1){

':' was missing