今天让我措手不及gdb
:
Program exited with code 0146.
Run Code Online (Sandbox Code Playgroud)
gdb
以八进制打印返回码;调查我发现的原因:http :
//comments.gmane.org/gmane.comp.gdb.devel/30363
但这并不是一个特别令人满意的答案。一些快速的谷歌搜索并没有揭示历史,所以我希望 SO 上的某个人可能知道背后的故事。
一个有点相关的问题,如何查看八进制的返回码?也许旧机器总是打印返回码?
$ printf %o\\n $?
Run Code Online (Sandbox Code Playgroud)
很别扭 :)
八进制表示简化了对最常用的小值的退出代码的解释。如果这个数字是一个字节,以十进制打印,找到哪个信号中断了进程需要在八进制中进行一些计算,它们可以按原样读取:
gdb
显示05
没有区别SIGINT
( Control+ C),gdb
显示0202
哪个比 更容易识别为信号 #2 130
。此外,退出状态也可能是位掩码,在这种情况下,八进制(至少当您习惯它时,这在几十年前比现在更常见)比十进制甚至更容易在精神上转换为位十六进制,就像例如chmod
仍然接受一个八进制数来表示文件权限:0750 = 111 101 000 = rwx r-x ---
.
归档时间: |
|
查看次数: |
1226 次 |
最近记录: |