Corrupted arguments passed to target executable when debugging with GDB #6812
Labels
awaiting-maintainer
Awaiting review from Bazel team on issues
lang: c++
C++ rules integration
product: CLion
CLion plugin
topic: debugging
Issues related to debugging
type: bug
Description of the bug:
When debugging with GDB on CLion 2024.2, the plugin corrupts arguments passed to the target executable. The root cause seems to be improper handling of shell-escaped arguments.
For example:
"--tag=a b" becomes "--tag=a\ b"
"--tag=a,b" becomes "--tag=a\,b"
Looking at the
gdbserver
script, we can observe that shell escaping is enforced on line 96:new_args+=("$(printf "%q" "${old_arg}")")
I am not sure why this is necessary as the script works as expected with:
new_args+=("${old_arg:q}")
Which category does this issue belong to?
No response
What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
Which Intellij IDE are you using? Please provide the specific version.
CLion 2024.2
What programming languages and tools are you using? Please provide specific versions.
C++: gcc 11.4, gdb 12.1
What Bazel plugin version are you using?
2024.09.10.0.1
Have you found anything relevant by searching the web?
No response
Any other information, logs, or outputs that you want to share?
No response
The text was updated successfully, but these errors were encountered: