どのようにオブジェクトファイルのうち、グローバル変数の初期化値を得るのですか?

StackOverflow https://stackoverflow.com/questions/2343828

質問

あなたがオブジェクトファイルがある場合、どのようにそのオブジェクトファイルのデータセグメント内のグローバル変数の初期化値を得るのですか?

:たとえば、私は次のことをやったと言います
# 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オプションは私に新しいです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top