2017/06/12Linuxでプログラムのデバッグをしているときに、たまに困るのが、coreファイルが生成された実行環境と同じ環境が手元にない場合です。GNU/Linuxと、OSのバージョンも、32bit:64bitも違う場合で紹介してみましょう。()こんな感じに警告がいろいろ出て起動します。test.c:17スタックの状態を見ると(コマンドがdbx風で失礼)、ところどころ関数のシンボル名が表示されません。この例はまだマシな方で、ひどい組み合わせだと、全ての関数名が全く表示されないこともあります。quitとりあえず、使っている共有ライブラリを調べて、実行した環境からコピーしてきます。libgcc_s.so.1./libに必要な共有ライブラリを置きました。この状態でgdbを起動します。./sysrootをカレントディレクトリにセットします。すると必要な共有ライブラリはカレント以下を探してくれます。test.c:17今度はシンボル名がきちんと表示されます。information.共有ライブラリの情報を見ると、./lib/libc.so.6など、カレントディレクトリ以下のものが使われています。OSのバージョン違いだけでなく、クロス開発環境でのデバッグの際にも同じ感じでできるようです。実環境はRedHatEnterpriseLinuxで、開発環境はCentOSという場合などにこの方法はとても役立ちます。日本シー・エー・ディー株式会社社長・プログラマー・ライター。多趣味で話し好きで説教臭い。万年筆やさんで、私に合うペン先を見てもらった。書けば書くほど快感が走る万年筆とは。クラウドに関する記事のまとめ(2020.2.17~2020.2.22)北九州漫画ミュージアム「関谷ひさしとスポーツマンガの時代」5月23日イベントオール私立で大学まで2500万円。ランボルギーニが買えるぜ。やっててよかった資金術とは。Backlogのカンバンボードは末恐ろしいAWSのシェアが落ち、Azureが延びて、4年後にAzureシェア32%、AWSは34%になる件SoftwareDesign3月号ヤマハ特集に執筆参加しました。富士ゼロックスのCocoDesk、溜池山王駅で体験してみたPython海外ニュース紹介第1回「そもそもPythonは誰のために作られたのか?その設計思想とは。「PoC死」の葬り方・後編オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。利用規約プライバシーポリシーお問い合わせアイティメディアからのお知らせプレスリリースメールサービスRSSTwitterITmediaはアイティメディア株式会社の登録商標です。