恋するプログラムをCoffeeScriptで書いているんだけど、やっと7章まで進んだ。この章ではNode.jsでmecabが使う必要があるので調べてみたらnode-mecabっていうのを見つけた。
コンパイルは出来たんだけど、実際にrequireしようとしたらSegmentation faultした(Mac OSX(10.6)+Node6.8)
デバッグどうすんのかなぁ、あとnvmで入れたnodeってdebugオプションついてんだっけと見よう見真似で実行してみたがさっぱりわからん。
$ gdb --args /Users/kzfm/.nvm/v0.6.8/bin/node t.js (gdb) run Starting program: /Users/kzfm/.nvm/v0.6.8/bin/node t.js ... Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: 13 at address: 0x0000000000000000 0x0000000100de8cd1 in btrie_close () (gdb) backtrace #0 0x0000000100de8cd1 in btrie_close () #1 0x0000000100de5fbc in MeCab::Dictionary::close () #2 0x0000000100dded6a in MeCab::Dictionary::~Dictionary () #3 0x0000000100ddb3c2 in MeCab::TokenizerImpl<mecab_node_t, mecab_path_t>::~TokenizerImpl () #4 0x0000000100de5844 in MeCab::TaggerImpl::~TaggerImpl () #5 0x0000000100de435a in MeCab::createTagger () #6 0x00000001007db588 in Tagger::New (args=@0x7fff5fbfddc0) at ../mecab.cc:17
t.js
var mecab = require('mecab') console.log( mecab.parse("こちら葛飾区亀有公園前派出所"));
いい機会なのでデバッグのやり方を学んでおこう。
追記 12.02.14
MeCab::createTaggerでこけてるっぽいが、理由がよくわからんlinuxへのインストールはうまくいくのでとりあえずこっちで凌ぐか、別プロセスで呼び出すようにしようかね。