概要 anchor.png Edit

スタックトレースを表示します。 例外でプログラムが強制終了した場合などに、スタックトレースを調べることでその原因となった関数を知ることができます。 コンパイル時に -g を渡すことでスタックトレースが表示されるようになります。(dmd 2.053 からできるようになったようです) サンプルは Windows によるものです。

Page Top

サンプルコード anchor.png Edit

Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
 
 
 
-
|
!
 
 
-
|
|
!
 
 
-
|
-
|
!
!
module test;
 
import std.file;
 
void main()
{
  func1();
}
 
void func1()
{
  A a = new A();
  a.func2();
}
 
class A
{
  void func2()
  {
    std.file.read(null);
  }
}
Page Top

コンパイル anchor.png Edit

1
2
3
chcp 65001
dmd -g test.d
test.exe

今回のサンプルでは文字化けを起こすため、chcp コマンドによりコードページを UTF-8 に変更しています。

Page Top

実行結果 anchor.png Edit

1
2
3
4
5
6
std.file.FileException@std\file.d(308): : 指定されたパスが見つかりません。
----------------
C:\dmd2\projects\test\test.d(45): void test.A.func2()
C:\dmd2\projects\test\test.d(37): void test.func1()
C:\dmd2\projects\test\test.d(31): _Dmain
----------------

main が func1 を呼び出し、func1 が A.func2 を呼び出して std.file.read 関数が失敗していることがわかります。 ライブラリファイルを作成する場合にも コンパイラに -g を渡せば、スタックトレースが表示されるようです。

Page Top

投票とコメント anchor.png Edit

選択肢 投票
大変参考になった0  
参考になった1  
あまり参考にならなかった0  
まったく参考にならなかった0  

コメントはありません。 コメント​/HowTo​/スタックトレースを表示する編集

お名前:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 1171, today: 2, yesterday: 1
初版日時: 2011-08-17 (水) 19:23:22
最終更新: 2011-08-17 (水) 19:23:22 (JST) (2226d) by SHOO
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu