問題タブ [btrace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jar - BTrace を使用すると、「Agent JAR が見つからないか、Agent-Class 属性がありません」というエラーを修正する方法を教えてください。
BTrace を使用すると、この問題が発生しました。しかし、私はそれを修正する方法がわかりません。Linux コマンドは次のとおりです。
問題は:
Agent JAR が見つからないか、Agent-Class 属性がありません。
btrace - btrace をシャットダウンするには?
アプリケーションの計測に btrace を使用しています。Btrace が行うことは、実行中の JVM にバイトコードを挿入して、ターゲット アプリケーションをトレースすることです。また、トレーサー クライアントとアプリケーションの間で通信するためのソケット接続もセットアップします。
トレーサー クライアントを停止しても、アプリケーションに挿入されたコードは削除されません。引き続きトレースし、このポートを介して結果を送り返します。クライアントが存在しないため、トレース結果を送信しようとすると例外が発生します。
アプリケーションに接続した後、アプリケーションの計測を解除し、btrace を正常にシャットダウンするにはどうすればよいですか?
btrace - btrace 無効なパス 9116 が指定されました: 2/そのようなファイルまたはディレクトリはありません
i は Linux で btrace を使用しています,注意: 無効なパス 9116 が指定されました: 2/No such file or directory my exec コマンド:btrace 9116 AllMethods.java my home path is ok, i got Pid by jps, btrace version is 1.3.8.3
java - COMPUTE_MAXS は StackMapTable を削除しています
オープンソース ライブラリ Btrace を使用して、Java アプリケーションのプロファイルを作成しています。
いくつかのバグを見つけたのでいじっていましたが、それらを修正しようとしているときに、不思議な出来事に遭遇しました.
基本的に、私はフラグ付きの ClassWriter を使用しています。COMPUTE_MAXS
私の意図は、既存のメソッドの StackMapTables をいじることではありません (いかなる状況下でも)。
ただし、いくつかのケースでは StackMapTables を再計算していない可能性がありますが (再計算するCOMPUTE_FRAMES
必要があります)、実際の StackMapTable が「欠落」しているようです。
これが例です。
元のコード:
コマンドjavap -p -v -c <class>
を使用して、クラス内のすべてのメソッドの StackMapTables を調べています。残念ながら、完全な出力をここに記載するには長すぎますが、焦点を当てたいポイント、本質的にはクラスのコンストラクターを記載します。
元のコンストラクタ:
変換されたコンストラクター:
わかりにくいですが、両方の出力をテキスト差分ツールで実行したところ、次のことがわかりました。
明らかに、StackMapTable 全体を削除しています。私の質問は、なぜ/どのようにこれが起こるのでしょうか?
フラグについて調べてみましたが、COMPUTE_MAXS
これが意図した動作なのか、それとも何か他のことが原因で発生しているのかはわかりません。
ありがとう!
アップデート:
問題を警告するエラーを入れるのを忘れました: