我正在尝试在调试一些旧的 fortran 代码时使用来自https://github.com/gdbinit/Gdbinit的 gdbinit 文件。如果我不包含 gdbinit 文件,GDB 一切正常;但是,当包含该文件时,我收到以下错误:
Error while running hook_stop:
A syntax error in expression, near `= 1'.
在文件内部挖掘并使用一些注释后,我认为问题出在以下代码中的 if 语句上:
# ____________________misc____________________
define hook-stop
# Display instructions formats
if $ARM == 1
if $ARMOPCODES == 1
set arm show-opcode-bytes 1
else
set arm show-opcode-bytes 1
end
else
if $X86FLAVOR == 0
set disassembly-flavor intel
else
set disassembly-flavor att
end
end
# this makes 'context' be called at every BP/step
if ($SHOW_CONTEXT > 0)
printf "%i", $SHOW_CONTEXT
context
end
if ($SHOW_NEST_INSN > 0)
set $x = $_nest
while ($x > 0)
printf "\t"
set $x = $x - 1
end
end
end
document hook-stop
!!! FOR INTERNAL USE ONLY - DO NOT CALL !!!
end
我知道 if 语句是问题的原因是因为当我编辑代码时:
# ____________________misc____________________
define hook-stop
# Display instructions formats
# if $ARM == 1
# if $ARMOPCODES == 1
# set arm show-opcode-bytes 1
# else
# set arm show-opcode-bytes 1
# end
# else
# if $X86FLAVOR == 0
# set disassembly-flavor intel
# else
# set disassembly-flavor att
# end
# end
# this makes 'context' be called at every BP/step
if ($SHOW_CONTEXT > 0)
printf "%i", $SHOW_CONTEXT
context
end
if ($SHOW_NEST_INSN > 0)
set $x = $_nest
while ($x > 0)
printf "\t"
set $x = $x - 1
end
end
end
document hook-stop
!!! FOR INTERNAL USE ONLY - DO NOT CALL !!!
end
错误变为: Error while running hook_stop 表达式中的语法错误,靠近'> 0'。
有谁知道发生了什么?我真的不知道如何读取 gdbinit 文件或它的正确语法。
值得我在 Mac OSX 10.9.3 上运行 gdb 7.7.1。
我还在 gi 存储库中提交了一个错误报告,但我认为我可能会在这里得到更快的答案。
谢谢你的帮助!
安德鲁