1. ホーム
  2. Linux

Linux "std::bad_allocのインスタンスを投げた後に呼び出されたterminate what(): std::bad_alloc Aborted "

2022-02-16 02:22:43

      最近、Linuxでbedtoolsというソフトを使っているのですが、bedtools coverageを使うときに以下のようなエラーが出続けます。

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted (core dumped)

      Webでいろいろ調べても、みんなメモリが足りないって言うけど、ちゃんとした解決策は教えてくれない。

      メモリが足りないので、まず考えたのは、PBSでノードのCPUを全部一人で独占して、メモリを全部一人で使えるようにすることでしたが、それでもエラーが報告されました。そこで、bedtools coverage -h を使って、詳しく見てみると

入力のbamファイルがソートされている場合、-sortパラメータを追加できることがわかり、これから使うbamファイルのほとんどがソートされており、私のも例外ではないので、-sortedを追加してみたところ、予想外に問題が解決し、メモリ不足のエラーが出なくなったのです。