サービスアプリケーションのデバッグについて – プログラミング – Home

サービスアプリケーションのデバッグにつ...
 
通知
すべてクリア

[解決済] サービスアプリケーションのデバッグについて


as
 as
(@as)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

はじめまして、as@VC初心者です。よろしくお願い致します。

環境: WinNT4.0 SP6/VC5.0/MFC未使用

WinNTサービスから起動されるアプリケーションのデバッグを行っております。

ソースコード中にdebugbreak関数を用いてデバッグを行おうとしているのですが、
「runtime error c:\...\msdev.exe abnormal program termination」のダイアログが
表示されてしまいデバッグが行えない状態でして、こういう場合の対応策について何かご存知の
方はいらっしゃらないでしょうか?

又、他にサービスアプリケーションのデバッグについて良い方法があれば教えていただければと
思います。

よろしくお願い致します。


引用未解決
トピックタグ
弟子
 弟子
(@弟子)
ゲスト
結合: 22年前
投稿: 9
 

OutputDebugString関数でデバッガを起動しながらチェックを行います。
私が愛用しているのはデバッグもに太です。

基本的に
1) サービス登録

2) 起動

3) 変数チェック

4) 停止

5) ソース変更

6) 起動 …

以下繰り返しです。

単体モジュールのテストを正確に行うのが完成の近道だと思います。
あと、私の場合サービスの機能のみを抽出して非サービスプログラムで組み、
十分にテストをしてからサービス機能をつけました。

あまり参考にならないかも知れませんが、私はこんな感じでやりました。


返信引用
as
 as
(@as)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

弟子さん,はじめまして。

デバッグの仕方について教えていただき,誠にありがとうございます。
「デバッグもに太」ですね。今後使用させていただきたいと思います。

自分でもいろいろ調査を行ってみたところ,「コントロールパネル」
「サービス」で,対象となるサービスの「スタートアップ」から
「デスクトップとの会話をサービスに許可」にチェックすると
サービスから起動を行ってもデバッガが起動されるようになりました。

やはりOSについての知識も詳しくならないといけないようですね。

弟子さんももし機会があれば試してみてください。

それでは失礼します。


返信引用
弟子
 弟子
(@弟子)
ゲスト
結合: 22年前
投稿: 9
 

>デスクトップとの会話をサービスに許可」にチェック

それは知りませんでした。今後参考にさせて頂きます。

↓デバッグ用に作った関数です。

// MFCのTRACEマクロを再現
// 1024を越えないように…(苦
void Trace( const char *format, ... )
{
char s[ 1024 ] = {0};

va_list args;
va_start( args, format );
vsprintf( s, format, args );
OutputDebugString( s );
va_end( args );
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました