livedumpstart コマンド

目的

ライブ・ダンプを開始します。

構文

livedumpstart [ -e ] [ -h ] [ -p pseudo-component ] [ -q ] [ -r ] [ -u ] [ -c component_path ] [ -l logical_alias ] [ -t type ] [ -C component_path | -L logical_alias | -T type ] attribute [ ... ]

説明

livedumpstart コマンドは、ライブ・ダンプを開始するために使用します。ダンプには 1 つ以上のコンポーネントを組み込むことができます。 直列化されたダンプのみが使用されます。ダンプを 1 つのパスに限定することができます。獲得されたデータはファイルシステムにダンプされ、ダンプはディレクトリーに入れられます。ダンプを通知ダンプまたは重要ダンプとして指定することができます。

コンポーネントは、指定した順序でダンプされます。障害のあるコンポーネントには、-C-L、または -T のいずれかのフラグを付けて指定してください。疑似コンポーネントの名前を指定することはできません。

データは、該当のコンポーネントに設定した詳細レベルでダンプされます。システム・ダンプおよびライブ・ダンプの管理の詳細については、dumpctrl コマンドを参照してください。

-q フラグを指定しない場合は、livedumpstart コマンドにより、ダンプの名前を含むメッセージが表示されます。

フラグ

項目 説明
-c [+] component_path[+] [:parameter_list]

コンポーネントのパス名別にコンポーネントを指定します。 -c フラグを複数回指定できます。

コンポーネント名の前に正符号 (+) を付けた場合は、当該コンポーネントおよびその祖先コンポーネントのデータがダンプされます。 コンポーネント名の後に正符号 (+) を付けた場合は、当該コンポーネントおよびその子孫コンポーネントのデータがダンプされます。

複数のパラメーターをコンポーネントに渡すことができます。コンポーネント名の後にオプションの "+" :parameter_list を指定してください。parameter_list は、コンマで区切られた複数のパラメーターから構成されます。このリストは、ブランクで区切ってグループ分けすることもできます。 コンポーネントおよびその祖先または子孫のコンポーネントが指定された場合には、パラメーターは当該コンポーネントにのみ渡され、祖先または子孫のコンポーネントには渡されません。

-C [+] component_path[+] [:parameter_list]

コンポーネントのパス名別に障害のあるコンポーネントを指定します。 障害のあるコンポーネントは 1 つだけ指定できます。したがって、-C-L、および -T フラグのうちいずれか 1 つだけ指定でき、そのコンポーネント指定は、1 つのコンポーネントを表していなくてはなりません。-C basecomp+ が指定され、かつ basecomp がライブ・ダンプを認識していない場合は、ライブ・ダンプを認識できるのは basecomp およびその子孫コンポーネントのうちの 1 つのコンポーネントに限られます。

しかし、basecomp がライブ・ダンプを認識している場合には、basecomp は障害のあるコンポーネントであり、複数のライブ・ダンプ認識の子孫コンポーネントがある可能性があります。
ヒント: 上記の規則は、コンポーネントとその祖先コンポーネントにも適用されます。

コンポーネントの前に正符号 (+) を付けた場合は、当該コンポーネントとその祖先コンポーネントがダンプされます。 コンポーネントの後に正符号 (+) を付けた場合は、当該コンポーネントとその子孫コンポーネントがダンプされます。

パラメーターがコンポーネントに渡される場合は、コンポーネントとオプションの "+" の後に :parameter_list が付きます。 parameter_list は、コンマで区切られた複数のパラメーター、またはブランクで区切られた keyword=parm_list ペアから構成されます。詳細については、コマンド・ラインからのパラメーターの指定に関するセクションを参照してください。 コンポーネントおよびその祖先または子孫 (あるいはその両方) のコンポーネントが指定された場合には、パラメーターは当該コンポーネントにのみ渡され、祖先または子孫のコンポーネントには渡されないことに注意してください。

-e 指定されたコンポーネントまたは疑似コンポーネントが含まれているダンプのサイズの見積もりを表示します。

このフラグを使用すると、ダンプを開始することなくダンプのサイズの見積もりが得られます。 正確な見積もりを得るためには、ダンプに使用するのと同じコンポーネント、パラメーター、および明細レベルを使用してください。 見積もりには、圧縮係数が取り入れられます。

-h ヘルプ・テキストを表示します。-h フラグが他のコンポーネントまたは疑似コンポーネントと共に指定された場合には、そのコンポーネントのヘルプ・テキストが表示されます。
-l [+] logical_alias[+] [:parameter_list]

コンポーネントの論理別名別にコンポーネントを指定します。 複数の -c-l、および -t フラグを指定することができます。

論理別名の前に正符号 (+) を付けた場合は、当該別名とその祖先別名がダンプされます。 論理別名の後に正符号 (+) を付けた場合は、当該別名とその子孫別名がダンプされます。

パラメーターがコンポーネントに渡される場合は、コンポーネントとオプションの "+" の後に :parameter_list が付きます。 parameter_list は、コンマで区切られた複数のパラメーター、またはブランクで区切られた keyword=parm_list ペアから構成されます。詳細については、コマンド・ラインからのパラメーターの指定に関するセクションを参照してください。 コンポーネントおよびその祖先または子孫 (あるいはその両方) のコンポーネントが指定された場合には、パラメーターは当該コンポーネントにのみ渡され、祖先または子孫のコンポーネントには渡されないことに注意してください。

-L [+] logical_alias[+] [:parameter_list]

コンポーネントの論理別名別に障害のあるコンポーネントを指定します。 障害のあるコンポーネントは 1 つだけ指定できます。したがって、-C-L、および -T フラグのうちいずれか 1 つだけ指定でき、そのコンポーネント指定は、1 つのコンポーネントを表していなくてはなりません。-L basecomp+ が指定され、かつ basecomp がライブ・ダンプを認識していない場合は、ライブ・ダンプを認識できるのは basecomp およびその子孫コンポーネントのうちの 1 つのコンポーネントに限られます。

しかし、basecomp がライブ・ダンプを認識している場合には、basecomp は障害のあるコンポーネントであり、複数のライブ・ダンプ認識の子孫コンポーネントがある可能性があります。
ヒント: 上記の規則は、コンポーネントとその祖先コンポーネントにも適用されます。

論理別名の前に正符号 (+) を付けた場合は、当該別名とその祖先別名がダンプされます。 論理別名の後に正符号 (+) を付けた場合は、当該別名とその子孫別名がダンプされます。

パラメーターがコンポーネントに渡される場合は、コンポーネントとオプションの "+" の後に :parameter_list が付きます。 parameter_list は、コンマで区切られた複数のパラメーター、またはブランクで区切られた keyword=parm_list ペアから構成されます。詳細については、コマンド・ラインからのパラメーターの指定に関するセクションを参照してください。 コンポーネントおよびその祖先または子孫 (あるいはその両方) のコンポーネントが指定された場合には、パラメーターは当該コンポーネントにのみ渡され、祖先または子孫のコンポーネントには渡されないことに注意してください。

-p pseudo-component [:parameter_list]

疑似コンポーネントを指定します。

注: 疑似コンポーネント (-p) を障害のあるコンポーネントとすることはできません。

パラメーターが疑似コンポーネントに渡される場合は、その疑似コンポーネントの後に :parameter_list を付ける必要があります。parameter_list は、コンマで区切られた複数のパラメーター、またはブランクで区切られた keyword=parm_list ペアから構成されます。詳細については、コマンド・ラインからのパラメーターの指定に関するセクションを参照してください。

次の表は、疑似コンポーネントについて説明したものです。

仕様 パラメーター 説明
eaddr:hex,hex アドレスおよび長さ、16 進値 カーネル有効アドレス別にメモリーをダンプします。
context:addr=hex-eaddr | tid_t=hex-tid_t | cpu=dec-lcpu | bid=dec-bid hex-eaddr - コンテキスト (MST) 有効アドレス、hex-tid_t - カーネル・スレッド ID、dec-lcpu - 論理 cpu、dec-bid - cpu バインド ID カーネル・コンテキストをダンプします。これには、軽量メモリー・トレース・データ、スタックおよびスレッドの状態情報が含まれます。
tid_t:hex-tid 16 進カーネル・スレッド ID カーネル・スレッド ID 別にカーネル・スレッドをダンプします。
tid:dec-tid 10 進カーネル・スレッド ID カーネル・スレッド ID 別にカーネル・スレッドをダンプします。この ID は 10 進数です。
tslot:dec-slot 10 進カーネル・スレッド・スロット番号 カーネル・スレッド ID 別にカーネル・スレッドをダンプします。このスレッドは、10 進スロット番号で指定されます。
pid_t:hex-pid 16 進カーネル・プロセス ID プロセス ID 別にプロセスをダンプします。
pid:dec-pid 10 進プロセス ID プロセス ID 別にプロセスをダンプします。この ID は 10 進数です。
pslot:dec-slot 10 進プロセス・スロット番号 プロセス ID 別にプロセスをダンプします。このプロセスは、10 進スロット番号で指定されます。
errbuf パラメーターなし カーネル・エラー・ロギング・データをダンプします。
mtrc:common-size, rare-size 共通および特殊 10 進バッファー・サイズ 軽量メモリー・トレース・データをダンプします。
systrace:dec-size 10 進バッファー・サイズ システム・トレース・データをダンプします。 バッファー・サイズが 0 の場合は、バッファー全体がダンプされます。
comptrace:component, dec-length コンポーネント名およびデータの 10 進の量。コンポーネントを別名とし、長さをゼロにして、バッファー全体をダンプすることができます。 コンポーネント・トレース・データをダンプします。
kernext:pathname エクステンションの絶対パス名 このエクステンションのシンボル解決が許可されます。
-q 抑制モードを指定します。メッセージは表示されません。
-r 指定されたコンポーネントのすべてのサブコンポーネントのデータをダンプします。 このフラグを指定すると、後ろに "+" の付いたコンポーネントをすべて指定するのと同じことになります。
-t [+] type[+] [:parameter_list]

コンポーネントのタイプ別またはサブタイプ別にコンポーネントを指定します。 複数の -c-l、および -t フラグを指定することができます。

タイプまたはサブタイプの前に正符号 (+) を付けた場合は、当該コンポーネントとその祖先コンポーネントがダンプされます。 タイプまたはサブタイプの後に正符号 (+) を付けた場合は、当該コンポーネントとその子孫コンポーネントがダンプされます。

パラメーターがコンポーネントに渡される場合は、コンポーネントとオプションの "+" の後に :parameter_list が付きます。 parameter_list は、コンマで区切られた複数のパラメーター、またはブランクで区切られた keyword=parm_list ペアから構成されます。詳細については、コマンド・ラインからのパラメーターの指定に関するセクションを参照してください。 コンポーネントおよびその祖先または子孫 (あるいはその両方) のコンポーネントが指定された場合には、パラメーターは当該コンポーネントにのみ渡され、祖先または子孫のコンポーネントには渡されないことに注意してください。

-T [+] type[+] [:parameter_list]

コンポーネントのタイプ別またはサブタイプ別に障害のあるコンポーネントを指定します。 障害のあるコンポーネントは 1 つだけ指定できます。したがって、-C-L、および -T フラグのうちいずれか 1 つだけ指定でき、そのコンポーネント指定は、1 つのコンポーネントを表していなくてはなりません。-T type+ が指定され、かつ type がライブ・ダンプを認識していない場合は、ライブ・ダンプを認識できるのは type およびその子孫コンポーネントのうちの 1 つのコンポーネントに限られます。

しかし、タイプ type のコンポーネントがライブ・ダンプを認識している場合には、このコンポーネントは障害のあるコンポーネントであり、複数のライブ・ダンプ認識の子孫コンポーネントがある可能性があります。
ヒント: 上記の規則は、コンポーネントとその祖先コンポーネントにも適用されます。

タイプまたはサブタイプの前に正符号 (+) を付けた場合は、当該コンポーネントとその祖先コンポーネントがダンプされます。 タイプの後に正符号 (+) を付けた場合は、当該コンポーネントとその子孫コンポーネントがダンプされます。

パラメーターがコンポーネントに渡される場合は、コンポーネントとオプションの "+" の後に :parameter_list が付きます。 parameter_list は、コンマで区切られた複数のパラメーター、またはブランクで区切られた keyword=parm_list ペアから構成されます。詳細については、コマンド・ラインからのパラメーターの指定に関するセクションを参照してください。 コンポーネントおよびその祖先または子孫 (あるいはその両方) のコンポーネントが指定された場合には、パラメーターは当該コンポーネントにのみ渡され、祖先または子孫のコンポーネントには渡されないことに注意してください。

-u コンポーネントの階層において、指定したコンポーネントより上位のコンポーネントのデータをダンプします。 これは、前に "+" の付いたコンポーネントをすべて指定するのと同じことになります。

コンポーネント名および別名を指定する際に、ワイルドカードを使用することができます。指定するいずれのパラメーターも、合致するすべてのコンポーネントに渡されることを覚えておいてください。 all またはアスタリスク (*) を使用することはできません。

制約事項: 障害のあるコンポーネントは 1 つしか指定できないので、-C comp* で解決できるコンポーネントは 1 つのみです。

属性

ダンプの属性は、keyword=value ペアで指定されます。この属性は、ダンプ・パラメーターの構成、ダンプ・ヘッダーの構成、および症状情報の編集に使用されます。 属性の変更は、Attribute=Value パラメーターを指定して行います。 適切な権限がある場合には、以下の必須属性を設定することができます。
項目 説明
symptom=string ダンプをさらに限定するために必要な症状ストリング詳細を指定します。 この文字列の最大長は 2047 文字です。
適切な権限がある場合には、以下のオプションのグループ属性を設定することができます。
項目 説明
errcode=code 症状ストリングにエラー・コードを指定します。0x で始まる場合は値は 16 進数、0 で始まる場合は値は 8 進数です。それ以外の場合は 10 進数です。
force=yes|no 「yes」の場合は、重複検査を指定変更し、前のダンプと重複するかどうかに関係なく、データをダンプします。 デフォルトは「yes」です。これは、コマンド・ラインから実行されるいずれのダンプも、重複として扱われることはないためです。
log=yes|no ダンプの完了時にログ・エントリーを書き込むかどうかを指定します。 「yes」を指定した場合は、メッセージがエラー・ログに書き込まれます。デフォルトは「yes」です。
noforce ソフトウェアによって開始されたライブ・ダンプ用です。その日に開始された前回のダンプと重複している場合に、このダンプを開始するかどうかを指定します。 noforce 属性を指定すると、ダンプの重複がなくなります。
nolog ダンプの完了時にメッセージをエラー・ログに書き込むかどうかを指定します。 この属性を指定しない場合は、ダンプの完了およびエラーはログに記録されます。
prefix=prefix ファイル名の接頭部を指定します。この名前は 63 文字を超えることはできません。
priority=priority ダンプの優先順位を指定します。info または critical を指定することができます。デフォルトは critical です。 値 info を指定した場合は、ダンプが通知目的であることを示し、critical を指定した場合は、ダンプが問題のデバッグに必要であることを示します。
title=string オプションのダンプ・タイトルを指定します。最大 127 文字を指定できます。
type=type システムをフリーズさせずにデータを収集するかどうかを指定します。
serialized|ser
ダンプ・データは、システムのフリーズ時に収集されます。すべてのデータをダンプするには、複数回のフリーズを使用する必要が生じる場合があります。 これはデフォルトです。
unserialized|unser
データはシステムをフリーズさせずに収集されます。すべてのデータをダンプするには、複数回のフリーズを使用する必要が生じる場合があります。 unserialized を指定した場合は、システムはデータの収集時にフリーズしません。
onepass すべてのデータが 1 つのパスのもとで収集されます。すべてのデータが使用可能メモリーに収まらない場合は、ダンプは切り捨てられます。 必要な場合は、デフォルトではマルチパスを使用できます。

終了状況

項目 説明
0 (ゼロ) livedumpstart コマンドが正常に完了し、ダンプの名前を含むメッセージを生成します。
nonzero livedumpstart コマンドが失敗し、エラー・メッセージを生成します。このコマンドは、次の条件のもとで失敗します。
  • 1 つ以上のパラメーターが無効である。
  • 1 つ以上のコンポーネントが無効である。
  • コンポーネントの中に、ライブ・ダンプ用に指定できるものがない。
  • コンポーネントが、ライブ・ダンプの中からライブ・ダンプを取ろうとした。
  • ライブ・ダンプが使用不可である。
  • ダンプが既に存在している。これは、force=no 属性を指定したときに起こる可能性があります。
  • メモリーが不足している。
  • この単一パス・ダンプでは、すべてのデータをバッファーに入れることはできない。
  • プロセッサーが使用不可である時間が長すぎるため、このダンプは切り捨てられる。

セキュリティー

root ユーザーのみがこのコマンドを実行できます。

  1. デバイス ent0、およびコンポーネントの階層でこのデバイスより上位のコンポーネントのデータをダンプするには、次のコマンドを入力します。
    livedumpstart -L +ent0 symptom=foo
    障害のあるコンポーネントは ent0 です。これにより、ent0.yymmddhhmm.00.DZ という名前のダンプが作成されます。これは直列化された重要ダンプです。
    ヒント: 障害のあるコンポーネントを指定するための規則に従って、ent0 がライブ・ダンプを認識していないにもかかわらず複数の祖先コンポーネントがある場合には、このコマンドは失敗します。 ent0 がライブ・ダンプを認識しておらず、祖先コンポーネントが 1 つだけある場合は、この祖先コンポーネントが障害のあるコンポーネントとして使用されます。
  2. プロセス 856 および 10272 のプロセス管理データの情報ダンプを作成するには、次のコマンドを入力します。
    livedumpstart -p pid:856 -p pid:10272 ¥
                  info prefix=mydump title="process dump" symptom="foo"
    
    ダンプの名前は mydump.nocomp.yymmddhhmm.00.DZ となります。障害のあるコンポーネントを入れないようにしてください。

  3. 直列化されたワンパス・ダンプ (ここで、foo は障害のあるコンポーネント) を作成するには、次のコマンドを入力します。
    livedumpstart -C foo+:block=45ab8 -pcontext:tid_t=57B29 onepass symptom=bar
    
    このコマンドは foo、その子孫コンポーネント、およびカーネル・スレッド 57B29 のコンテキストをダンプします。ダンプの名前は foo.yymmddhhmm.00.DZ となります。

  4. サブシステムには、別名 subsyst をもつ親コンポーネントがあります。また、ライブ・ダンプを認識するコンポーネントが 1 つだけあります。 このサブシステムの直列化ライブ・ダンプを作成するには、次のコマンドを使用することができます。
    livedumpstart -L subsyst+ title="Dump of subsystem subsyst" symptom=foo

  5. プロセス 1234 が 0x45928 で始まる 0x400 バイトと一緒にダンプされるように指定するには、次のコマンドを入力します。
    livedumpstart -p tid:1234 -p eadder:45928,400 symptom=foo
    
    この例では、障害のあるコンポーネントは含まれていません。