タグ

ブックマーク / blog.64p.org (7)

  • openjdk をコンパイルして gdb で実行すると sigsegv しちゃうんだけど、って時の対処方法 - tokuhirom's blog

    Java で開発していると openjdk を自分でコンパイルして gdb でステップ実行して内部動作をトレースしたいなーという時があると思います。 そんな時には以下のように、openjdk の configure 時に debug option つけて symbol つけましょう、みたいな情報は調べればすぐ出てくるんです。実際以下のようにオプションつければ OK bash ./configure --with-debug-level=slowdebug --with-target-bits=64 --disable-zip-debug-info make all そして、いざ実行してみると以下のように SIGSEGV だという宣告が!! (gdb) r Starting program: /home/tokuhirom/jdk9/./build/linux-x86_64-normal-s

    yyamano
    yyamano 2016/10/11
    “ええええええ。SIGSEGV って出てもその後そのまま c してけばいつかブレークポイントにたどり着くので気にしなくていいんだってさ!”
  • Java 8 で例外を投げていることをテストしたい - tokuhirom's blog

    特定の条件で例外を投げるコードを書いたときに、それをテストしたい。なんてときがある。 このクラスの例外があがってるってことだけ判断できればいいんだけどな、ぐらいのゆるい条件のとき。 そんな時は以下のようなユーティリティを定義すればいい。 public static void assertThrows(Class<? extends Exception> exceptionClass, Code code) { boolean thrown = false; try { code.run(); } catch (Exception ex) { System.out.println(ex); assertTrue(exceptionClass.isInstance(ex)); thrown = true; } assertTrue(thrown); } @FunctionalInterface

    yyamano
    yyamano 2014/07/14
    TestNGみたいにexpectedExceptionsとかならわかりやすいのか?
  • Node.js で重い処理をしてしまったときにタイムアウトするの法 - tokuhirom's blog

    (この記事は Node.js アドベントカレンダー不参加記事です) チャットサーバー的な使い方とか意外とみんな興味なくて、普通のウェブアプリケーションなどをかく、という用途にちょっと node.js がつかえたらいいのにな、とおもっている人がおおいようにかんじています。Node.js が人気なのは、v8 をうまくパッケージングしているのが node.js ぐらいで、そして v8 をうまくパッケージングするのが結構めんどくさいから、というところが大きいのです。ぶっちゃけ node.js が〜 とさわいでる人のうち8割は I/O multiplexing だからとかそういう理由で支持しているわけではなかったりするのです(偏見)。 さて、普通の web application のようなものを書こうとしたときに Node.js って基シングルスレッドだし、なんかうっかり重い処理したときにどうした

  • Gearman の使いどころについて - tokuhirom's blog

    「Gearman って gearmand がおちたら、キューにはいってるジョブがふっとんじゃうんでしょ?」とか「ワーカーがしんだらジョブきえちゃうんでしょ?」とかいう話があるわけですが、そもそもそういう風にきえてこまる用途につかうものじゃないのかな、とおもってます。 gearman はそもそもが、distributed remote function call server なので、ジョブキュー的なつかいかたは、「たまたまできる」程度にとらえるのが妥当ではないかとおもいます。 remote function call が主用途だから、基的にはリアルタイムに処理して、caller は処理がおわるのを待つのが基です。だから、処理が失敗したら、caller 側でエラー処理をすればいいという設計思想なのかなーとおもってる。 もともと gearmand って「gearmand - Gearman

    yyamano
    yyamano 2010/07/13
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    yyamano
    yyamano 2010/07/13
  • TokuLog 改め最適なフレームワークで快適なくらしを創造する会 - あっというまにゼロからWSGI

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 1