私のC++アプリケーションの.text開始とサイズを知りたい。私はこれに関する関連トピック(link)を読んでいましたが、私は自分が望むことをすることができません。私のサンプルプログラムのreadelfが出力を分析Linux elf .text direction
私はこれだ:だから私は私のプログラムの.textセクションは0x400830アドレスから開始することを理解
Section Headers:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[14] .text PROGBITS 0000000000400830 00000830
0000000000000252 0000000000000000 AX 0 0 16
を。
しかし、私は私のプログラムからこのアドレスへのアクセスをカント:
printf("My process ID : %d\n", getpid());
printf("Executable Start address: 0x%lx\n", (unsigned long)&__executable_start);
printf("Text Start Address: 0x%lx\n", (unsigned long)&__etext);
しかし、出力は次のとおりです。
My process ID : 4029
Executable Start address: 0x400000
Text Start Address: 0x400a8d
あなたは開始アドレスが同じではありません見ることができるように。 .textセクションの開始アドレスへのアクセス方法。私はサイズまたは最終アドレスを知る必要があります...これは可能ですか?
__etextはテキストセクションの最後であり、 "e"はあなたにそれを示唆しています。 –
C!= C++。両方が実際に関連している場合を除き、使用している言語のみでタグを設定してください。 – tambre
__etextがテキストセクションの終わりの場合...どのようにテキストセクションの先頭を取得できますか? –