C++ Builderの出力mapのアドレスは相対アドレス

タイトルの通り、C++Builderで出力されるmap中のアドレスは相対アドレスになる。
このため、実行時のアクセス違反メッセージで表示されるアドレス値とは異なることに注意。

ベースアドレスは最初に記述されている。例えば以下の通り。

 Start Length Name Class
 0001:00401000 0009FD8ECH _TEXT                  CODE
 0002:00DFF000 000063CB0H _DATA                  DATA
 0003:00E62CB0 000018FB0H _BSS                   BSS
 0004:00000000 0000000B4H _TLS                   TLS

コードの開始アドレスは、0001セグメントで0x00401000からだと分かる。コードの終了アドレスは0x0009FD8ECを足して0x00DFE8ECだ。
以降は関数とその相対アドレスが羅列されているので、例えば以下のように書かれていれば、0001セグメントの開始アドレスを足して絶対アドレスは0x0070477Cであることが分かる。

 0001:0030377C func()

逆に、アクセス違反メッセージで、例えば0x00704781などと表示されているのであれば、この関数内でエラーが起きている可能性が高いと分かる。
通常はアクセス違反メッセージから探すだろうから、0x00704781からベースアドレスを引いて、0x00303781以前の最も近い関数を探すことになる。