如何在gdb命令中打印输入和离开功能?

问题描述 投票:1回答:1

我尝试过以下内容,但我只看到第一个printf语句,而不是那个说“离开”的语句。这可能吗?

break MyFunctionName
commands
  silent
  printf "Entering MyFunctionName\n"
  finish
  printf "Leaving MyFunctionName\n"
  continue
end
gdb
1个回答
1
投票

这可能吗?

不,这是gdb的documented行为:

在恢复执行的命令之后,命令列表中的任何其他命令都将被忽略。这是因为每当你恢复执行时(即使使用简单的下一步或步骤),你可能会遇到另一个断点 - 它可能有自己的命令列表,导致关于要执行哪个列表的含糊不清。

finish是恢复执行的命令,因此命令列表中的这两个剩余命令将被忽略:

  printf "Leaving MyFunctionName\n"
  continue
© www.soinside.com 2019 - 2024. All rights reserved.