C 在键入';后,gdb在执行下一个程序行时返回什么退出代码;下一个';指挥部?
在linux终端中,我键入了命令why(该命令不存在),并得到了此响应C 在键入';后,gdb在执行下一个程序行时返回什么退出代码;下一个';指挥部?,c,linux,gdb,return-code,C,Linux,Gdb,Return Code,在linux终端中,我键入了命令why(该命令不存在),并得到了此响应 No command 'why'found, did you mean: .... why: command not found 要获取退出代码,我输入了以下内容: $? 得到的答复是: 127: command not found 我假设当大多数命令运行时,它们返回代码。 现在使用gdb,在它执行被调试的C程序的下一行之后,它会返回任何代码吗?如果是这样,我如何获得这些代码(gdb中的$?之类的命令?——我还没有在
No command 'why'found, did you mean:
....
why: command not found
要获取退出代码,我输入了以下内容:
$?
得到的答复是:
127: command not found
我假设当大多数命令运行时,它们返回代码。
现在使用gdb,在它执行被调试的C程序的下一行之后,它会返回任何代码吗?如果是这样,我如何获得这些代码(gdb中的$?之类的命令?——我还没有在MANGDB页面中找到此类命令的文档
*在任何情况下,gdb都应该知道(并且可能会记录)该行是否成功执行,如果没有,会发生什么错误。没有代码行成功执行这样的事情,至少不会以与shell命令相同的方式执行 在shell中,您输入的是内部shell命令或外部程序的名称。对于外部程序,
$?
的值是程序传递给退出
系统调用的值。如果shell找不到具有该名称的程序或命令,它将向您发送错误消息描述的
在已编译的C程序中,没有“代码”在语句运行后返回。程序中只有状态更改。例如,如果语句为
i=i+1;
,则i
的值比其在语句运行前的值大1。没有代码行成功执行的情况,至少与给t的命令不同他会的
在shell中,您输入的是内部shell命令或外部程序的名称。对于外部程序,$?
的值是程序传递给退出
系统调用的值。如果shell找不到具有该名称的程序或命令,它将向您发送错误消息描述的
在已编译的C程序中,没有“代码”在语句运行后返回。程序中只有状态更改。例如,如果语句为
i=i+1;
,则i
的值比其在语句运行前的值大1。Unix进程始终返回一个值:它们的退出代码;之所以命名为该值,是因为大多数程序都以调用结束退出(还有其他可能性,但在这里并不重要)。请注意,所有进程都返回这样的代码,而不是大多数。Shell解释用户键入的行并将其转换为进程。当进程终止时,shel会让您知道它控制的最后一个进程的返回代码值。在bash中,此变量是$?
。如果要打印它,可以使用echo$?
。如果键入$?
,它会将其解释为命令,但127
(最后一个命令的退出值)不是命令。对于正确终止的进程,标准是返回值为0,任何非nul值都表示程序逻辑中的某个地方发生了错误
gdb还启动流程(控制流程)但是,执行一行代码并不是在运行进程,因此在执行程序代码的一个步骤后没有退出代码。在gdb中,当您执行某个终止进程的内容时,其退出代码在内部gdb变量中可用。
$\u exitcode
Unix进程总是返回一个值:它们的退出代码;名为因为大多数程序都会在调用退出时终止(还有其他可能性,但在这里并不重要)。请注意,所有进程都返回这样的代码,而不是大多数。Shell解释用户键入的行并将其转换为进程。当进程终止时,shel会让您知道它控制的最后一个进程的返回代码值。在bash中,此变量是$?
。如果要打印它,可以使用echo$?
。如果键入$?
,它会将其解释为命令,但127
(最后一个命令的退出值)不是命令。对于正确终止的进程,标准是返回值为0,任何非nul值都表示程序逻辑中的某个地方发生了错误
gdb还启动流程(控制流程)但是,执行一行代码并不是在运行进程,因此在执行程序代码的一个步骤后没有退出代码。当您在gdb中执行终止进程的内容时,其退出代码在内部gdb变量中可用。当目标进程完成时,gdb将退出代码存储在nience变量$\u exitcode
。这就是您要查找的吗?谢谢,这很有帮助。但在目标进程完成之前,“程序中只有一个状态更改”正如@dbush在下面解释的那样-这回答了我在问题的第一部分中希望得到的答案当目标流程完成时,gdb将退出代码存储在便利变量$\u exitcode
中。这就是您要找的吗?谢谢,这很有帮助。但是在目标流程完成之前,“程序中只有一个状态更改"正如@dbush在下面解释的那样-这回答了我在问题的第一部分希望得到的答案谢谢你@Jean Baptiste。谢谢你回音$?来获取它的价值,而不是让shell在没有回音的情况下使用它的价值作为命令。我监督了这一点,谢谢。谢谢你@Jean Baptiste。谢谢你回音$?获取它的值,而不是让shell在没有echo的情况下使用它的值作为命令。我监督了这一点,谢谢。