どのようにオブジェクトファイルのうち、グローバル変数の初期化値を得るのですか?
-
23-09-2019 - |
質問
あなたがオブジェクトファイルがある場合、どのようにそのオブジェクトファイルのデータセグメント内のグローバル変数の初期化値を得るのですか?
:たとえば、私は次のことをやったと言います# I'm interested in the variable foo inside bar.o in libbar.a:
$ ar -x libbar.a bar.o
$ nm --print-size bar.o | grep foo
00000048 00000004 D foo
このはfoo
はサイズ4とのデータセグメントで0x48オフセットであることを私に語ったが、私はそれが負荷に取得し、実際の初期化された値を取得する方法を教えてください。
解決
それを考え出します:
objdump -j.data -s bar.o
これは、値を検索することが容易になり、データ・セグメントのhexdumpに対してを与えます。私は逆アセンブルしたコードの前にobjdump -d
を使用しましたが、-s
オプションは私に新しいです。
所属していません StackOverflow