Drkcore

13 02 2012 Node.js Tweet

node-mecabを使おうとしたらSegmentation faultした

恋するプログラムをCoffeeScriptで書いているんだけど、やっと7章まで進んだ。この章ではNode.jsでmecabが使う必要があるので調べてみたらnode-mecabっていうのを見つけた。

  • Node用MeCabバインディング あと非同期版つくろうとして失敗した話
  • NodeとMeCabを用いたtweet連想ゲーム

コンパイルは出来たんだけど、実際に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("こちら葛飾区亀有公園前派出所"));

いい機会なのでデバッグのやり方を学んでおこう。

ProductName Debug Hacks -デバッグを極めるテクニック&ツール
吉岡 弘隆
オライリージャパン / 3360円 ( 2009-04-27 )


追記 12.02.14

MeCab::createTaggerでこけてるっぽいが、理由がよくわからんlinuxへのインストールはうまくいくのでとりあえずこっちで凌ぐか、別プロセスで呼び出すようにしようかね。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021