GoGPT Best VPN GoSearch

OnWorksファビコン

perldtrace-クラウドでのオンライン

Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、またはMACOSオンラインエミュレーターを介してOnWorks無料ホスティングプロバイダーでperldtraceを実行します

これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドperldtraceです。

プログラム:

NAME


perldtrace-DTraceに対するPerlのサポート

SYNOPSIS


#dtrace -Zn'perl :: sub-entry、perl :: sub-return {trace(copyinstr(arg0))} '
dtrace:description'perl :: sub-entry、perl :: sub-return '一致した10個のプローブ

#perl -E 'サブアウター{インナー(@_)}サブインナー{言うシフト}アウター( "hello")'
こんにちは

(dtrace出力)
CPU ID機能:名前
0 75915 Perl_pp_entersub:sub-entry BEGIN
0 75915 Perl_pp_entersub:sub-entry import
0 75922 Perl_pp_leavesub:sub-インポートを返す
0 75922 Perl_pp_leavesub:sub-BEGINを返します
0 75915 Perl_pp_entersub:sub-entryouter
0 75915 Perl_pp_entersub:sub-entryinner
0 75922 Perl_pp_leavesub:sub-内部を返す
0 75922 Perl_pp_leavesub:sub-外部を返す

DESCRIPTION


DTraceは、包括的なシステムレベルおよびアプリケーションレベルのトレースのためのフレームワークです。 Perlは
DTrace プロバイダー、つまり、いくつかを公開します プローブ 計装用。 あなたはこれらを使うことができます
カーネルレベルのプローブ、および次のような他のプロバイダーからのプローブと組み合わせて
MySQL、ソフトウェアの欠陥、またはアプリケーションのボトルネックを診断するため。

提供されているものを利用するには、Perlを「-Dusedtrace」オプションでコンパイルする必要があります
プローブ。 DTraceは、インストルメンテーションがアクティブでないときにオーバーヘッドが発生しないことを目指していますが、
Perlのサポート自体はその保証を維持できないため、DTraceプローブなしで構築されています
ほとんどのシステムで。 注目すべき例外のXNUMXつは、Mac OSXが / usr / bin / perl  
DTraceサポートが有効になっています。

HISTORY


5.10.1
Perlの最初のDTraceサポートが追加され、「サブエントリ」と「サブリターン」が提供されました
プローブ。

5.14.0
「サブエントリ」および「サブリターン」プローブは、XNUMX番目の引数を取得します。
関数。

5.16.0
「相変化」プローブが追加されました。

5.18.0
「op-entry」、「loading-file」、および「loaded-file」プローブが追加されました。

プローブ


サブエントリ(SUBNAME、FILE、LINE、PACKAGE)
任意のサブルーチンのエントリをトレースします。 すべての変数がを参照していることに注意してください
呼び出されているサブルーチン。 現在、何かを手に入れる方法はありません
サブルーチンに関する情報 発信者 DTraceアクションから。

:* perl * :: sub-entry {
printf( "%s ::%sが%s行%dに入力されました\ n"、
copyinstr(arg3)、copyinstr(arg0)、copyinstr(arg1)、arg2);
}

sub-return(SUBNAME、FILE、LINE、PACKAGE)
任意のサブルーチンの終了をトレースします。 すべての変数がを参照していることに注意してください
返されるサブルーチン。 現在、何かを手に入れる方法はありません
サブルーチンに関する情報 発信者 DTraceアクションから。

:* perl * :: sub-return {
printf( "%s ::%sが%s行%dで返されました\ n"、
copyinstr(arg3)、copyinstr(arg0)、copyinstr(arg1)、arg2);
}

相変化(NEWPHASE、OLDPHASE)
Perlのインタプリタ状態への変更をトレースします。 これをトレースとして内部化できます
Perlの "$ {^ GLOBAL_PHASE}"変数への変更、特に
「NEWPHASE」と「OLDPHASE」は、「$ {^ GLOBAL_PHASE}」が報告する文字列です。

:* perl * :: phase-change {
printf( "フェーズが%sから%sに変更されました\ n"、
copyinstr(arg1)、copyinstr(arg0));
}

op-entry(OPNAME)
Perlランループ内の各オペコードの実行をトレースします。 このプローブは前に発射されます
オペコードが実行されます。 Perlデバッガーが有効になっている場合、DTraceプローブが起動されます
After デバッガーがフックします(ただし、オペコード自体が実行される前です)。

:* perl * :: op-entry {
printf( "オペコード%sを実行しようとしています\ n"、copyinstr(arg0));
}

読み込み中-ファイル(ファイル名)
Perlが「use」、「require」、または「require」のいずれからでも、個々のファイルをロードしようとしているときに発生します
"行う"。 このプローブは、ファイルがディスクから読み取られる前に起動します。 ファイル名の引数は
「Module :: Name」スタイルの名前を提供する代わりに、ローカルファイルシステムパスに変換されます。

:* perl *:loading-file {
printf( "%sをロードしようとしています\ n"、copyinstr(arg0));
}

ロードされたファイル(ファイル名)
Perlが「使用」からかどうかにかかわらず、個々のファイルを正常にロードしたときに発生します。
「必要」または「実行」。 このプローブは、ファイルがディスクとその内容から読み取られた後に起動します
評価されました。 filename引数は、ではなくローカルファイルシステムパスに変換されます
「Module :: Name」スタイルの名前を提供します。

:* perl *:loaded-file {
printf( "正常にロードされた%s \ n"、copyinstr(arg0));
}


最も頻繁に呼び出される関数
#dtrace -qZn 'サブエントリ{@ [strjoin(strjoin(copyinstr(arg3)、 "::")、copyinstr(arg0))] = count()} END {trunc(@、10)}'

クラス:: MOP ::属性::スロット400
試してみてください:: Tiny :: catch 411
Try :: Tiny :: try 411
Class :: MOP :: Instance :: inline_slot_access 451
Class :: MOP :: Class :: Immutable :: Trait ::: around 472
Class :: MOP :: Mixin :: AttributeCore :: has_initializer 496
Class :: MOP :: Method :: Wrapped :: __ ANON__ 544
Class :: MOP :: Package :: _ package_stash 737
Class :: MOP :: Class :: initialize 1128
Class :: MOP :: get_metaclass_by_name 1204

関数呼び出しをトレースする
#dtrace -qFZn 'サブエントリ、サブリターン{trace(copyinstr(arg0))}'

0-> Perl_pp_entersub BEGIN
0 <-Perl_pp_leavesub BEGIN
0-> Perl_pp_entersub BEGIN
0-> Perl_pp_entersub import
0 <-Perl_pp_leavesub import
0 <-Perl_pp_leavesub BEGIN
0-> Perl_pp_entersub BEGIN
0-> Perl_pp_entersubドレス
0 <-Perl_pp_leavesubドレス
0-> Perl_pp_entersubダーティ
0 <-Perl_pp_leavesubダーティ
0-> Perl_pp_entersub whiten
0 <-Perl_pp_leavesub whiten
0 <-Perl_dounwind BEGIN

インタプリタのクリーンアップ中の関数呼び出し
#dtrace -Zn '相変化/ copyinstr(arg0)== "END" / {自己->終了= 1}サブエントリ/自己->終了/ {trace(copyinstr(arg0))}'

CPU ID機能:名前
1 77214 Perl_pp_entersub:sub-entry END
1 77214 Perl_pp_entersub:sub-entry END
1 77214 Perl_pp_entersub:sub-entryのクリーンアップ
1 77214 Perl_pp_entersub:sub-entry _force_writable
1 77214 Perl_pp_entersub:sub-entry _force_writable

コンパイル時のシステムコール
#dtrace -qZn '相変化/ copyinstr(arg0)== "START" / {自己>興味深い= 1}相変化/ copyinstr(arg0)== "RUN" / {自己>興味深い= 0} syscall ::: / self-> Interesting / {@ [probefunc] = count()} END {trunc(@、3)} '

イシーク 310
374を読む
統計64 1056

最も多くのオペコードを実行するPerl関数
#dtrace -qZn 'サブエントリ{self-> fqn = strjoin(copyinstr(arg3)、strjoin( "::"、copyinstr(arg0)))} op-entry / self-> fqn!= "" / {@ [self-> fqn] = count()} END {trunc(@、3)} '

警告:: unimport 4589
Exporter :: Heavy :: _ rebuild_cache 5039
Exporter :: import 14578

参考文献


DTraceダイナミックトレースガイド
<http://dtrace.org/guide/preface.html>

DTrace:Oracle Solaris、Mac OS X、およびFreeBSDでの動的トレース
<http://www.amazon.com/DTrace-Dynamic-Tracing-Solaris-FreeBSD/dp/0132091518/>

onworks.netサービスを使用してperldtraceをオンラインで使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。