none
VS2008のデバッグについて RRS feed

  • 質問

  • 今日は!

    xマークでデバッグを終了したときに、以前開いていたページが変わり、そのファイルの最初の

    ページが表示されます。

    Q1)以前開いていたページを表示して、デバッグを終了する設定はありますか?

    つまり、その箇所をデバッグするために都合がよい。

    2014年2月24日 12:26

すべての返信

  • 質問者さんはこの質問文を読んで何を聞かれているのかわかるのでしょうか?

    そもそも「ページ」「そのファイル」とは何を指すのでしょうか? それについての説明が全くありません。これでは答えようがありません。

    2014年2月24日 12:57
  • 佐祐理 さま

    早速の、ご連絡有難うございます。

    判り難い点点はお詫びします。

    具体的に説明します。

    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)

    以上

    2014年2月24日 13:40
  • Visual Studioでは複数の言語を扱えますが、その中で質問者さんはVisual Studio 共通 フォーラムを選択しました。しかし、質問文を読む限りMFCつまりVisual C++に限定された話題に見受けられます。
    # ちなみに元の質問文にはMFCもC++も一切記載がありません。逆にこの返信には「ページ」という記述がありません。「ページ」という表現から当初はASP.NETを想像しました。

    もし、回答を求めているのであれば、聞きたいことだけを一方的に羅列するのではなく、回答者に答えて欲しいことを考えながら質問文を組み立てるべきです。

    「×ボタン」は多数ありどこを押したのか、訂正された質問文からは読み取ることができませんでした。質問者さんは「×ボタン」という表現で他者に通じるとお考えなのでしょうか?
    ちなみに一般的な「デバッグの停止時」であればカーソル位置は変わらないはずです。停止方法が特殊なのか、もしくは開始方法が特殊です。

    2014年2月24日 23:37
  • 1.編集中
    2.デバッグ実行中
    3.デバックを終了して編集中に戻った

    の各過程において、各ペインの表示が異なるということならばそれはありえます。
    ただし、カレントのファイルが別のものになるということはないはずなのですが、
    どうでしょう。

    VSにおいては、1.の状態での各ペインのレイアウトと、2.の状態でのそれは異なります。
    目的がまったく違うので各ウインドウの位置やサイズや表示すべきペインが異なるのは
    あたりまえですね。

    次に、1.の状態でキャレットを置いていたファイルの表示行が前後する。
    というのも実はありえます。
    以下に再現方法を記述します。

    A.このバージョンのVSのエディタの表示では、ファイル末尾の行の無い空行まで
     スクロールできるようになっています。方向キーではこの状態にできないので、
     マウスホイールかPageDownを使用します。
     このファイル末尾の空行が表示されている状態で
     キャレットを最終行においてから、デバッグ実行を開始すると、
     なぜか前方に自動的にスクロールして、表示行が変わります。
     この状態でデバッグを終了すると、その表示状態のまま編集モードに戻ります。
     従って、開始前とデバッグ終了後では表示位置は異なる状態になります。

    B.前述とは異なり、デバッグを開始してから上記の様に空行が表示される状態にまで
     スクロールしておきます。
     この状態でデバッグを終了すると、なぜか自動的に前方に自動的にスクロールして、
     表示行が変わります。

    さて、この症状はそれより以前のVSでもあったわけですが空行までスクロール
    できるようになって目立ちやすくなりました。これは不可避で対策といえるものは
    ありませんが、ファイル末尾に改行のみの行を複数入れておくことで、
    ある程度は緩和できます。

    これ以外の症状についてお尋ねの場合は、正しい用語を使用した上で、
    正確な症状の解説が必要であると考えられます。

    2014年2月25日 1:25
  • <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等の特別な条件の場合は別です。

    以上

    2014年2月25日 3:11
  • この症状についての知見は前回の発言から変わっておりません。
    あらためて、80行程度のファイルを表示してキャレットを80行目に設定し、
    デバッグ開始、デバッグ終了をやってみましたが、自分の
    指摘した内容と異なる症状は認められませんでした。

    そうなると見舞われているその症状は自分の指摘したものとは異なるものかもしれません。
    残念ですが、再現できない症状にアドバイスをすることは困難です。

    2014年2月25日 4:07
  • 了解

    丁寧な、ご回答、コメント有難うございました。

    2014年2月25日 4:11
  • やや補足すると、

     1.「表示している」部分に「キャレットをおいている」場合。

    であれば、デバッグ終了後に下方向キーを一回押下することで
    キャレットが表示できる位置にジャンプするので次善策としてみてはどうでしょう。
    2014年2月25日 4:18