by shigemk2

当面は技術的なことしか書かない

ghcntをjqでやろうとした

➜  05  curl https://api.github.com/users/shigemk2/events | jq ".size"           
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 38843  100 38843    0     0  36082      0  0:00:01  0:00:01 --:--:-- 36099
jq: error: Cannot index array with string

jq コマンドが強力すぎてヤバい件 | CUBE SUGAR STORAGE

出てこない…

もう少し、アレする必要があるのかも。

javapのオプションの違いがよく分からなかった

どーも。違いのわからない男、shigemk2です。例にもれず、javapのオプションの違いがあまり良く分からなかったので、あれこれ手を動かしながら調べてみました。

javap - Java クラスファイル逆アセンブラ

-cオプション

クラスの各メソッドのために逆アセンブルされるコード、すなわち Java バイトコードから成る命令を表示します。

-vオプション

別名--verbose

メソッドのスタックサイズ、および locals と args の数を出力します。

-pオプション

たぶん別名--private

その違い

manでも上のドキュメントでもまあ情報は手に入るけど、オプションcとvの違いがよく分からなかったので比べてみた。

サンプルコード

gist.github.com

オプションなし

逆アセンブル結果も何もない味気ないコード。 gist.github.com

-pだけ

逆アセンブル結果は何もないけど、とりあえずprivateメソッドが追加されてる。 gist.github.com

-cだけ

どうも、privateメソッドの逆アセンブルはできていない様子。 gist.github.com

-vだけ

メソッドのスタックサイズ、および locals と args の数を出力します、と書いてあるけど、何気に逆アセンブル結果も出ている。だけでなく、まえがきや定数プールも出力されている。なお、privateメソッドの逆アセンブル結果は出てない。

gist.github.com

-cと-p

cオプションで出てきた逆アセンブル結果に加えて、privateメソッドの逆アセンブル結果も、出る。でも定数プールとかは出ない。

gist.github.com

-pと-v

vオプション単体にprivateメソッドの逆アセンブル結果などが出てくる。

gist.github.com

-cと-v

vオプション単体と変わらない。。

gist.github.com

-cと-pと-v

pオプション+vオプションと変わらない。

gist.github.com

まとめ

微妙な違いがわかったので、とりあえず、pとvを基本で使いつつ、要所要所でcだけを使うといいと思いました。cとvを重ねがけするのは意味がないのでした。