** Summary changed: - gdb doesn't work properly when attaching to R + gdb 'call' / 'print' commands don't work properly when attaching to R
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to gdb in Ubuntu. https://bugs.launchpad.net/bugs/1926815 Title: gdb 'call' / 'print' commands don't work properly when attaching to R Status in gdb package in Ubuntu: New Bug description: Sorry for the somewhat weird / vague title; hopefully the rest of this issue will make it more concrete ... First, to set the stage; gdb and R both installed from apt repositories: $ /usr/bin/gdb --version GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 Copyright (C) 2020 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. $ /usr/bin/R --version R version 4.0.5 (2021-03-31) -- "Shake and Throw" Copyright (C) 2021 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under the terms of the GNU General Public License versions 2 or 3. For more information about these matters see https://www.gnu.org/licenses/. Now, I can use gdb in batch mode to introspect a bash process; e.g. print the SHELL environment variable: $ /usr/bin/gdb -batch -p $(pgrep -nx bash) -ex 'print (char*) getenv("SHELL")' 0x00007f5623d8c1db in __pselect (nfds=1, readfds=0x7ffdaeda52f0, writefds=0x0, exceptfds=0x0, timeout=<optimized out>, sigmask=0x5615fe778140 <_rl_orig_sigset>) at ../sysdeps/unix/sysv/linux/pselect.c:48 48 ../sysdeps/unix/sysv/linux/pselect.c: No such file or directory. $1 = 0x5615ffc825d0 "/bin/bash" [Inferior 1 (process 640102) detached] But, if I try to do the same with a running R process, I see: $ R -s -e "Sys.sleep(100)" & [1] 643585 $ /usr/bin/gdb -batch -p $(pgrep -nx R) -ex 'print (char*) getenv("SHELL")' [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f47944050da in select () from /usr/lib/x86_64-linux-gnu/libc.so.6 Invalid character '"' in expression. [Inferior 1 (process 643585) detached] Note the very confusing 'Invalid character '"' in expression.' error, implying that gdb was for some reason unable to handle the double-quoted string passed to getenv(). I cannot reproduce this in a version of gdb 9.2 built from sources locally; e.g. $ gdb --version GNU gdb (GDB) 9.2 Copyright (C) 2020 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. $ gdb -batch -p $(pgrep -nx R) -ex 'print (char*) getenv("SHELL")' [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007fba31ad60da in select () from /usr/lib/x86_64-linux-gnu/libc.so.6 $1 = 0x7fff4dc9adfe "/bin/bash" [Inferior 1 (process 701827) detached] So it seems like something specifically is broken in the version of GDB packaged for Ubuntu 20.04. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1926815/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp