troushoo

Fernflower: IntelliJ Community project 内の Java のデコンパイラ

概要IntelliJ Community project 内のプロジェクトである Fernflower を紹介します。Fernflower は Java のデコンパイラです。内容Fernflower を用いた Java のデコンパイル方法を紹介します。Ubuntu 18.04 上で試してます。1. IntelliJ Community プロジェクトをクローンします。git clone https://github.com/JetBrains/intellij-community2.  Fernflower をビルドします。cd intellij-community/plugins/java-decompiler/e...
  1. 2018/09/24(月) 23:12:40|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

Java アプリのヒープダンプの状態を比較

概要Java アプリのヒープダンプの状態を比較する方法を紹介します。ここでは VisualVM を用います。内容手順1. ヒープダンプを取得する Java プログラムのプロセス ID を確認します。jcmd2. ヒープダンプを作成します。jcmd <プロセス ID> GC.heap_dump <ヒープダンプの出力パス>3. 比較用のヒープダンプを作成します。jcmd <プロセス ID> GC.heap_dump <ヒープダンプの出力パス>4. VisualVM を起動します...
  1. 2018/09/09(日) 22:27:04|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

jcmd を使ってデッドロックのトラブルシューティング

Java 7 より追加された jcmd を使って、デッドロックの原因を調査する方法を紹介します。手順1. jcmd を実行し、デッドロックが疑われるアプリのプロセス ID を表示させます。2. jcmd <プロセス ID> Thread.print でコールスタックが表示されます。3. ハングを検知すると、デッドロックの情報とスレッドのコールスタックが表示されます。今回用いたソースコード以下のソースコードでデッドロックを作りました。public class ...
  1. 2018/08/19(日) 22:54:55|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

Java 9 以降のコアダンプで、ハングの原因を特定

概要Java 9 以降のコアダンプで、ハングの原因を特定する方法を紹介します。今回用いたソースコードは GitHub のサイトで確認できます。内容GUI ツール1. 「jhsdb hsdb」を実行します。2. 「File」→「Open HotSpot core file」をクリックします。3. 「Path to core file:」にコアファイルのパスを、「Path to Java executable:」にコアダンプ作成時に使用していた Java 実行ファイルへのパスを入力します。4. 「Tools」→「Deadlock...
  1. 2018/07/22(日) 23:58:21|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

実行中の Java のコールスタックを表示する方法

概要実行中の Java のコールスタックを表示する方法を 3 つ紹介します。内容kill –quit <pid>kill –quit <pid> を実行すると、実行プロセスのコンソールにコールスタックが表示されます。jstack –l <pid>jstack –l <pid> を実行すると、jstack の実行結果にコールスタックが表示されます。jstack は JDK に入っているコマンドです。VisualVMVisualVM にてプロセスを右クリックして「Thread Dump」をクリッ...
  1. 2018/06/18(月) 23:15:47|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (114)
ネットワーク (54)
Wireshark (48)
AD (36)
Linux (45)
WinDbg (46)
SOS・Psscor2/Psscor4 (25)
Visual Studio (56)
Tips (32)
コンテナ (4)
Azure (17)
.NET (24)
Python (9)
Java (5)
SQL (6)
事例 (1)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する