ホーム » 検索結果: リモートデバッグ

検索結果: リモートデバッグ

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 100,324 アクセス


リモートデバッグ

以前仮想マシンの XP にリモート環境を作って,その当時はそれなりに使ったと思う.


どうも起動が不安定だったが,複数のアダプターが影響していた?


リモート PC は,TestInst . 
ローカルは DevXP と T54W7U64 .


VC 6
プロジェクトの設定で,スタティックにするなどして,対象 exe 以外の dll などがなくても動作する様にしている.

リモート側で \\DevXP\….\Debug.060\i3DV.exe を実行できる様にする.
ローカル側でも同様の指定で実行可能な設定にしている.

VC 6 の設定で,メニューの「ビルド」-「デバッガリモート接続」でリモート PC を設定.

デバッグモニタの設定は,


VC 8
プロジェクトの設定は,場所が違うだけで内容は VC 6 と同じようなもの.

リモート側では exe はこの様に見える.

デバッグモニタの設定は,

デバッガで実行すると,i3DV.exe が起動する.


VC 10
リモートデバッガのインストールから.DVD 内の rdbgsetup_x86.exe を実行してインストール.

他は,VC 8 などと同様.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VC6 , VC8 リモートデバッグ

VC6
mk:@MSITStore:J:MSDNvccore.chm::/html/_core_setting_up_the_remote_debug_monitor.htm
http://support.microsoft.com/kb/241848/ja
https://www.betaarchive.com/wiki/index.php?title=Microsoft_KB_Archive/241848
以下のファイルをターゲット PC にコピー

1998-07-06 00:00 24,651 MSVCMON.EXE
2004-02-27 00:00 106,566 DM.DLL
2000-07-15 00:00 184,320 MSDIS110.DLL
2008-04-14 11:25 413,696 MSVCP60.DLL
2004-02-17 00:00 278,581 MSVCRT.DLL
2000-07-15 00:00  28,746 TLN0T.DLL

VC7
ms-help://MS.VSCC/MS.MSDNVS.1041/vsdebug/html/vctskInstallingRemoteDebugMonitor.htm
http://msdn.microsoft.com/ja-jp/library/aa291492(VS.71).aspx
C:\Program Files\Microsoft Visual Studio .NET\Common7\Packages\Debugger\
 msvcmon.exe
 msvcr70.dll
 NatDbgTLNet.dll
 NatDbgDM.dll
デバッグを開始できません.
プログラム ” を開始できません。
現在のユーザーのコンテキストで実行中のリモート コンピュータに MSVCMON がありません。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Machine Debug Manager]
"AllowLaunchAsOtherUser"=dword:00000001
うまく起動できない


VC8
http://msdn.microsoft.com/ja-jp/library/ey7ec813.aspx
http://msdn.microsoft.com/ja-jp/library/ey7ec813(VS.80).aspx
http://msdn.microsoft.com/ja-jp/library/bt727f1t(VS.80).aspx
 MSVSMon.exe
 DbgHelp.dll
 MSDbgUI.dll

http://support.microsoft.com/kb/908099/ja


VC9
http://msdn.microsoft.com/ja-jp/library/bt727f1t.aspx
http://msdn.microsoft.com/ja-jp/library/bt727f1t(VS.100).aspx
 MSVSMon.exe


リモートデバッグ

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

リリース版 exe のデバッグ

先日の Win11 24H2 でうまくなかった現象を更に調べたことのメモ.
結論としては,InitInstance に確保される dlg のメンバ変数で初期化がされていないものがあったため.


最初リモートデバッグも考えたが,VC 8 では少し面倒なので VS 2005 をインストールした.
https://learn.microsoft.com/ja-jp/visualstudio/debugger/remote-debugging-cpp?view=vs-2022
インストールした VC 8 でビルドしたデバッグ情報付きのリリース exe でも不具合の現象は確認できた.
が,デバッグしようとすると欲しい情報の所でうまく表示されない部分があった.
そのため VS 2008 もインストールすることに.
VC 9 ではうまくデバッグできる様になった.


デバッガで追いかけると,ダイアログのメンバ変数が意図しない値になっていて,初期化されていないことがわかった.
修正自体は簡単だが,なぜ今まで…


初期化されていないことによりゴミ(不定値)が入ることはわかる.
その変数は ‘1’ 以外だとうまく通る様になっていて,それが 24H2 でたまたま ‘1’ に?


Initinstance で確保される dlg はスタックに確保される.
デバッグ版 exe では,0 でないバイト値などで埋められることが多いが,リリース exe では 0 または不定値となる.
0 はまだ使われていない状態で,不定値は確保前に呼び出された関数で使用する変数やリターンアドレスなど.


一度実行して,次の所で設定されるポインタを求め,それをメモリダンプのアドレスに入力.
m_pMainWnd = &dlg;
再度実行して InitInstance で止めた時のメモリの状態.
dlg メモリ状態
今回の初期化されていない変数(赤くなっている次)が,’1′ になっていることを確認できた.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

MDI exe が動作しない?

Win10 Insider Preview 21H1 環境で,幾つかの exe がうまく動作しない.
引数が正しくありません。
VC 8 でビルドした exe は OK .VC 10 以降は NG のものがある.
SDI exe は大丈夫そうで,MDI exe はすべてではないが NG のものが多い.
タイミングとしては,3D データを読み込んだ後,ウィンドウに表示する前.


2021/07/12
一度「開く」ダイアログを表示するとその後はうまく動作する.


SDI exe であっても,VC 14 MFC スタティックだとうまくない?
MFC をスタティックリンクした exe でうまく動作しない
これはプロジェクトの設定がまずかったためで,別の記事に


2021/04/01
ちょっとわからないので,リモートデバッグの環境を作成することに.
MSDN Visual Studio での C++ プロジェクトのリモート デバッグ
リモートツールをダウンロードして,インストール.「スタート」から「Remote Debugger」を起動.
VS 2017 Remote Debugger
リモート側で exe を実行して,ホスト側で「アタッチ」.
VS でリモートのプロセスにアタッチ


2021/04/02
原因は,CRecentFileList::Add を通った時 ::CoInitinalize が呼び出されていないため.
CRecentFileList::Add  0x800401f0:CoInitialize は呼び出されていません
どうも MFC 10 から?変わったみたい.
MS C++ executable just started failing
MFC application crashing in ProcessShellCommand() when file to open specified on command line
それでも,なぜ環境によっては表面化しないのか?


CRecentFileList::Add で Win7 以降の「ジャンプリスト」に登録(::SHAddToRecentDocs )する様になった.
Win10 20H2 でも現象は発生した.2004 では問題ない.


対応としては InitInstance の最初に以下を追加.

	// OLE ライブラリを初期化します。
	if (!AfxOleInit()) {
		AfxMessageBox(_T("OLE の初期化に失敗しました。")) ;
		return	FALSE ;
		}

2021/04/06
2016/夏頃の Win10 で,その様になるものが存在したみたい.
その頃は T90Chi + VC 2015 + i3DV でやっていたと思うが,気づかなかった?

Is this 投稿 useful? Useful Useless 1 of 1 people say this 投稿 is useful.

VC 14 exe を XP でデバッグ

昨日リモートデバッグの環境を作っていったが,VC 14 では XP 上のリモートデバッグができない?
VC 11 以降 XP などについて具体的には書かれてない


今回リモートデバッグしようと思ったのは,VC 14 でビルドした exe が XP で実行できないことにあった.
Win 7 などでは問題ない.また,VC 12 などでビルドした exe なら大丈夫.
現象は,exe の起動はできるが 3D モデルを開く時,エラーメッセージも出ずに終了してしまう.


デバッグ版のプロジェクトで以下を設定.
  スタティック ライブラリで MFC を使用する
  Visual Studio 2015 – Windows XP (v140_xp)
ビルドして,リリース版と同様の現象になることを確認.


XP 環境には VC 8 が入っているので,
 デバッグ版 exe をエクスプローラなどから起動し,「ツール」-「プロセスにアタッチ」.
_tstati64 の呼び出しで,errno が 22(EINVAL 引数が無効です)となってしまう.


exe が終了してしまったのは,ファイルサイズが正しく取れなかったための無限ループ.

    bool    v_c_Save    (LPCTSTR pathName,const std::vector text)
    {
        FILE*	ofp = ::Open_File(pathName,_T("wb")) ;
        if (ofp == NULL) {
            return    false ;
            }
        if (text.size() > 0) {
            ::fwrite(&text[0],sizeof(char),text.size(),ofp) ;
            }
        ::fclose(ofp) ;
        if (text.size() > 0) {
            u_64    fSize =F_Stat::GetSize(pathName) ;
            if (fSize == 0) {
                return	v_c_Save(pathName,text) ;
                }
            }
        return  true ;
        }

無限ループにならない様に,ループカウンタを追加.
exe が抜ける現象は解消されて 3D モデルが表示できる様にはなったが,stat の部分の対応はこれから.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.