Ubuntu 16.04.4 LTS,GNU gdb(Ubuntu 7.11.1-0ubuntu1~16.5)7.11.1
我正在尝试在已编译的C程序中调用函数并获得以下内容:
"(gdb) call getVarName(someParam)
You can't do that without a process to debug."
没有其他代码或消息。
我可以从shell提示符运行程序 jef @ ubuntu $ ./program。 我可以在指定文件后在gdb中运行程序。权限是777(仅涵盖所有基础)。
基于研究,我将SHELL设置为“export SHELL = / bin / bash” 和 在/etc/sysctl.d/10-ptrace.conf中设置kernal.yama.ptrace_scope = 0
我仍然有同样的行为。
答案 0 :(得分:2)
我仍然有同样的行为。
自然。
您获得的错误意味着:您无法执行此操作,除非您正在调试实时流程。
这将有效:
(gdb) break main
(gdb) run
... GDB is now stopped, *and* you have a live process.
... you *can* call getVarName(...) now
(gdb) call getVarName(...)
(gdb) continue # causes the process to run to end and exit
[Inferior 1 (process 195969) exited normally]
(gdb) # Now you no longer have a live process, so you *again* can't
# call functions in it.