私にとって、リスティングファイルがデフォルトだった頃が懐かしい。
シンボル情報はマップファイルを見ればよろしい。
なぜか?
ROM焼きイメージ+リスティングファイル+マップファイルがデバッガのために必要だったからでしょう。本当の意味は知りません。
高価なOSを購入できない連中が作ったUNIXですから、当然開発ツールも自前なわけです。
なので、(当時はギョーカイでそんな言い方誰もしてないでしょうが)プロプライエタリなデバッガ(もちろん専用ハード+ソフト一式)システムをパクって仕様が決められたハナモゲラな開発ツール群が今ここにあるわけです。
マイコンだろうが、でっかいのにミニコンとはこれイカにだろうが、同じです。わざわざミョウチキリンな用語を使うまでもなかった。
リスティング、マップといえば、わかる。通じる。みるみる手書きボールペン文字がウマクなる。by日ペンの美子
ところが。
それを一緒くたにしてデバッグ情報などと称し、イメージファイル+ローディング情報を足して3で割ったようなものを実行可能形式などと称し、混乱の源を生み出したのは誰なんでしょうか。
それはもしかしたら、ボーランドやLSIかもしれません。いや、注意深く歴史を指で辿ってみてください。チラホラと同じ名前が何度も登場します。
有史以来、歴史的な出来事のウラにしばしば登場する、同名の人々。影で歴史を動かしている一族がいるわけです。
おっとまた妙な妄想竹が背を伸ばしてきましたネ。イカンカンイカナイカン。
さて、ところがいまやどうでしょうか。
実行可能ファイルをobjdumpして、逆アセンブルしたものを見よ。
実行可能ファイルが-g付きで生成されておれば、ソースと対応付けできる。
などというわけのわからん解説がありがたがられている始末です。なげかわしい。
いいですか。前者は、トラブルシューティングなどで”取り急ぎ”手元にバイナリしかないから仕方が無い場合の手順です。後者は、高価なデバッガが勝手にやってくれる手順を手作業化したものに過ぎません。
んなことやるやつぁ”本物じゃぁない”。
もうアホかと。手元にソースがあるなら、コンパイルしてリスティングファイルを得ればよろしい。リンカを通してマップファイルを得ればよろしい。
普段使っているMakefileにマップファイル生成のためのターゲットが記述されていることにすら気づかないでいるのです。ぉぉ嘆かわしい。
阿呆認定する前に、以下の点をチェックしてから指摘してあげましょう。そうでないとあなたが阿呆認定されます。世に言う、逆阿呆認定問題(Aho Classification Problem Inversion)です。
・ソース全体が馬鹿でかい場合
最終生成物から情報を得るほうが近道の場合があります。
しかしこれも、最終生成物置き場に、マップファイルやらリスティングファイルが置いてないのは、はなはだ疑問符ですがね。先達がそのように準備してあっても、その価値を知らない後世の人々にとっては固定ディスクのごみでしかないのでしょう。
エジプトのピラミッドに被せてあった綺麗な白い石灰石の板を屋根材に遣ってしまった民と同じにおいがします。リサイクルなら無駄ではないのですがね。
マップファイルなんか見てる暇があったらobjdumpかけた方が早い!
などと叱責されても、黙って従いますよ。
思想転換に最適な本をどぞ。