古い 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
エラーは次のようになります: hook_stop 実行中のエラー '> 0' 付近の式の構文エラー。
誰が何が起こっているのか知っていますか?gdbinit ファイルの読み取り方法や適切な構文がよくわかりません。
価値があるのは、Mac OSX 10.9.3 で gdb 7.7.1 を実行していることです。
また、gi リポジトリにバグ レポートを提出しましたが、ここでより迅速な回答が得られる可能性があると考えました。
ご協力いただきありがとうございます!
アンドリュー