
No.4ベストアンサー
- 回答日時:
>関数のアドレスを出力した場合、そのアドレスがどの関数を示しているか、
>static関数では判定できないという事でしょうか?
void sub1()
{
------略----
}
static sub2()
{
------略----
}
の場合
.glb_sub1 <----------ここが違う。static関数はこの命令がでない。
_sub1:
------略----
RTS
_sub2:
------略----
RTS
というアセンブリ言語イメージに落ちます。
sub2は、.glb宣言していないため、外部シンボルにしません。
>ちなみに、mapファイルにstatic関数を出力するリンクオプションが存在するのでしょうか?
コンパイラ・リンカーによってできるものがあるかもしれませんが、
一般的には、できないと思います。
>シンボルが無いという事は、inline関数のようにasmでは展開されるのでしょうか?
上の展開例を参照ください。
No.3
- 回答日時:
CPUやコンパイラによっても事情が変わる話ですが。
static関数のアドレスを知りたい場合の泥臭いテクニック。
そのソースファイルだけ命令コード付きのアセンブラリストとしてコンパイルします。
するとそのリストのアドレスは絶対値でないもの、つまりゼロから始まる相対値として出ているはずです。
で、所望の関数について、もっとも近いところにあるグローバル関数からの相対値を計算し、メモしておきます。
あとは全体をコンパイルしてmapファイルからグローバルシンボルのアドレスを調べれば、相対的に所望のstaticシンボルのアドレスも分かります。
参考まで。
No.2
- 回答日時:
回答になっていなかったです。
グローバルシンボルとして出してしまうと、別ファイルから
呼び出しが可能になるため、グローバルシンボルを出していません。
よって、グローバルシンボルがないため、マップにはでません。
static関数は、ファイル毎で同名の中身の異なった(同じであってもよい)関数を書くことができます。同名の関数が別ファイルにあり、staticでない場合はリンク時2重定義エラーになります。
この回答への補足
ありがとうございます
関数のアドレスを出力した場合、そのアドレスがどの関数を示しているか、static関数では判定できないという事でしょうか?
ちなみに、mapファイルにstatic関数を出力するリンクオプションが存在するのでしょうか?
シンボルが無いという事は、inline関数のようにasmでは展開されるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
c言語
-
VisualStudio2022でC言語プログ...
-
【C言語】全角文字の配列を、全...
-
コマンドプロンプトについて。
-
Cのコンパイルでコメントアウト...
-
C言語の関数のextern宣言
-
プログラミング言語でアプリや...
-
UART通信の取説で,left floati...
-
C#でTreeViewのCheckBoxのサイ...
-
だれがとけるの?
-
Notepad++の関数リスト表示でC...
-
chatgptでつくってもらったコー...
-
C++でデスクトップGUIアプリ開...
-
C言語の質問です。バイナリ形...
-
いまc言語の標準ライブラリ文字...
-
大量のデータを読み込んで表示...
-
visual studio 2022でのC#プロ...
-
プログラマー達は何故、プログ...
-
PIC12F1822でLED調光器を作りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】ファイル名をセル...
-
static関数がmapファイルに載ら...
-
画像のズームアウト処理を行う...
-
マスクが表示されてしまう
-
flashの中心点について
-
[MacOSX] 複数フレームワークを...
-
flash MXで、画像を切り替える...
-
デバッグを行うと
-
PNG24を読み込むと色合いが薄く...
-
アクションスクリプトに画像を...
-
flashのシンボルの再利用方法は?
-
不思議な水晶玉
-
シンボル化解除の方法
-
Vistaの環境でMacromedia Flash...
-
五芒星は、悪魔崇拝とどういう...
-
シンボルの存在意義
-
Visual C++ システムシンボルセ...
-
FLASH上でのビットマップ画像の...
-
何故、画像がくっついてるんで...
-
failbit | badbit
おすすめ情報