質問者
VS2008のデバッグについて

質問
すべての返信
-
佐祐理 さま
早速の、ご連絡有難うございます。
判り難い点点はお詫びします。
具体的に説明します。
VS2008のMFCで下記のコードをデバッグしています、そして
xボタンを押して、デバッグを中断したときに、
=================================
void Caaa1View::OnBnClickedButton1(){ <---デバッグの開始時、ここら辺を表示しています。
// TODO: ここにコントロール通知ハンドラ コードを追加します
RECT Rect1, Rect2, Rect0, FrameRect;CDC* pDC=m_pic.GetDC();
CString str;::GetClientRect(hwnd, &Rect2);
str.Format(_T("left=%d top=%d right=%d bottom=%d"), Rect2.left, Rect2.top, Rect2.right, Rect2.bottom);
pDC->TextOutW(10,10,str);==================================
デバッグの停止時、下記の如く、ファイルの最初を示しています(具体的には下記をご覧ください)
// aaa1View.cpp : 実装ファイル <---ここら辺を表示しています
//#include "stdafx.h"
#include "aaa.h"
#include "aaa1View.h"#include "Def.h"
extern HWND hwnd;
// Caaa1View
IMPLEMENT_DYNCREATE(Caaa1View, CFormView)
以上
-
Visual Studioでは複数の言語を扱えますが、その中で質問者さんはVisual Studio 共通 フォーラムを選択しました。しかし、質問文を読む限りMFCつまりVisual C++に限定された話題に見受けられます。
# ちなみに元の質問文にはMFCもC++も一切記載がありません。逆にこの返信には「ページ」という記述がありません。「ページ」という表現から当初はASP.NETを想像しました。もし、回答を求めているのであれば、聞きたいことだけを一方的に羅列するのではなく、回答者に答えて欲しいことを考えながら質問文を組み立てるべきです。
「×ボタン」は多数ありどこを押したのか、訂正された質問文からは読み取ることができませんでした。質問者さんは「×ボタン」という表現で他者に通じるとお考えなのでしょうか?
ちなみに一般的な「デバッグの停止時」であればカーソル位置は変わらないはずです。停止方法が特殊なのか、もしくは開始方法が特殊です。 -
1.編集中
2.デバッグ実行中
3.デバックを終了して編集中に戻ったの各過程において、各ペインの表示が異なるということならばそれはありえます。
ただし、カレントのファイルが別のものになるということはないはずなのですが、
どうでしょう。VSにおいては、1.の状態での各ペインのレイアウトと、2.の状態でのそれは異なります。
目的がまったく違うので各ウインドウの位置やサイズや表示すべきペインが異なるのは
あたりまえですね。次に、1.の状態でキャレットを置いていたファイルの表示行が前後する。
というのも実はありえます。
以下に再現方法を記述します。A.このバージョンのVSのエディタの表示では、ファイル末尾の行の無い空行まで
スクロールできるようになっています。方向キーではこの状態にできないので、
マウスホイールかPageDownを使用します。
このファイル末尾の空行が表示されている状態で
キャレットを最終行においてから、デバッグ実行を開始すると、
なぜか前方に自動的にスクロールして、表示行が変わります。
この状態でデバッグを終了すると、その表示状態のまま編集モードに戻ります。
従って、開始前とデバッグ終了後では表示位置は異なる状態になります。B.前述とは異なり、デバッグを開始してから上記の様に空行が表示される状態にまで
スクロールしておきます。
この状態でデバッグを終了すると、なぜか自動的に前方に自動的にスクロールして、
表示行が変わります。さて、この症状はそれより以前のVSでもあったわけですが空行までスクロール
できるようになって目立ちやすくなりました。これは不可避で対策といえるものは
ありませんが、ファイル末尾に改行のみの行を複数入れておくことで、
ある程度は緩和できます。
これ以外の症状についてお尋ねの場合は、正しい用語を使用した上で、
正確な症状の解説が必要であると考えられます。- 編集済み 仲澤@失業者 2014年2月25日 1:45
-
<input id="d46da1cd-0d28-413c-bfa8-10ea20446981_attachments" type="hidden" value="" /> 仲澤@失業者<abbr class="affil"></abbr> さま
毎度、お世話になります。
貴方が、本回答のなたで述べられました、下記の1、2、3について、
私の質問を補足します。
1.編集中 <---ファイルAAA.cppの100行が表示されていた。
2.デバッグ実行中3.デバックを終了して編集中に戻った
此処で、3.の段階でデバッグを終了したときに、ファイルAAA.cppの100行が表示されなくて
AAA.cppの第1行目が表示されます。
これを、これをファイルAAA.cppの100行が表示した状態で停止できないかと言う質問です。
なお、break等の特別な条件の場合は別です。
以上