読者です 読者をやめる 読者になる 読者になる

uragami note

ただの殴り書き

ctagsでCとアセンブラ間のタグジャンプができるようにする

ctags使っていて、Cとアセンブラでお互いにタグジャンプできないのが不便だったので、やっつけでtagsファイルを書き換えるスクリプト書いた。

Gist: ryochack / ctags_ac.rb

アセンブラからCの関数を呼ぶ時には、関数名の先頭に"_"がつく。
そのため、tagsファイルにある関数名の記載と異なり、タグジャンプできないことがままある。

call  _sys_call    ! sys_call(function, src_dest, m_ptr)

こういった時に、

$ ruby ctags_ac.rb tags

で、Cとアセンブラのシンボルをお互いにタグジャンプで行き来できるようにtagsファイルを書き換える。

要Ruby2.1.0以上、もしくはstring-scrub

スクリプトでやっていることは、 tagsファイルに記載されているCのシンボル名の頭に"_"を付加したものと、 アセンブラのシンボル名の頭から"_"をとったものを追記するだけのお粗末なもの。

もちろんtagsのファイルサイズは大きくなる。
あとCとアセンブラしか対応していない。

参考