dev-memo


nmの使い方

nm -D xxxx  xxxxは.soや実行バイナリ
で含まれるSymbolや参照している外部Symbolがわかる。

エラーメッセージで不足とされるSymbolが_始まりの意味不明なSymbolになる事があるけど、
cppで作られたものなどでは、name manglingされてて、意味不明なSymbolとなるので、
ソースのどの部分かわからない(法則があるので、頑張ればわかるようになると思うけども)

がんばりたくないので、

nm -D --demangle xxxx とすると、人が読めるソースコードと同じ名前に変換して出力してくれる。
順番や一部の名前から足りない関数名を特定できるようになる。

実際にそのコードの部分などをみて処理を追加できそうなのであれば
追加することで、ライブラリのロードができるようになります。
 ※当然、複雑な処理を必要とする関数を適当に作ると不具合になり、
  エラーメッセージを頼りに作成したものを改変していくことになる。 →ここで手詰まりになる事も当然ある。

Comments