@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

実行中のメソッド名を取得する方法について

1
投稿者投稿内容
Tol
常連さん
会議室デビュー日: 2004/07/16
投稿数: 27
投稿日時: 2007-08-02 23:44
C#で開発を行っているアプリがあるのですが、
試験中にフリーズしてしまうことがあります。
たいていはバグで無限ループに陥っていますが、
原因がわかるまでに時間がかかります。

すばやく見つけるために、実行中(無限ループしている)の
メソッド名が取得できればと思うのですが、取得方法はないでしょうか?
ただし、試験中といっても、デバッグではないので、Visual Studioの
デバッグモードは使用できません。

JAVAであれば、シグナルを送信することでスレッドダンプを取得できるので、
簡単に原因箇所がわかるのですが、.NETでの取得方法がわかりません。
どなかをご存知のかた、ご教授ください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-03 01:42
スレッド タイトルはそれとは違いますが答えはこちらにあります。過去ログには数スレッド類似の話題があるかと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2007-08-03 02:54
いや、そういうことではないのでは…
CLRで何かそういう機構ってあったかな?

外部からデバッガでアタッチしてとめるとか?

--追記
いや、とめたら駄目なんですよね、きっと。
アタッチしてスレッド情報だけなんらかの方法で取り出してデタッチとか
できるんですかね?
デバッグ系はまったく無知なので何ができて何ができないのか、
どういう問題があるのか等、ちょっとわからないです。

スレッドダンプみたいなのを取れる機能があるならそれが一番いいんでしょうけど…


[ メッセージ編集済み 編集者: なちゃ 編集日時 2007-08-03 02:59 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-08-03 07:14
単純に、デバッガで「すべて中断」するのでは駄目なんですか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-03 09:27
ああ... すみません。 何だか件名だけで回答しているかのような書き込みをしていました。 止めてしまってはダメとなると無知なためまったくわからないです。orz

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-08-03 09:41
じゃんぬさんの提示された方法でメソッド名を取れるので、
各メソッドでログを出力するようにしておいて、
問題発生時はログを見ればOKではないでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)