c++ builder XE4, 10.2 Tokyo > case 문 마지막 break에서는 브레이크 할 수 없다

운영 환경
C++ Builder XE4
RAD Studio 10.2 Tokyo Update 2 (追記: 2017/12/28)

Win 소프트를 실장하고 있어 깨달은 점.

case 문 마지막 break에서 breakpoint를 설정해도 무효가 된다.

Unit1.cpp
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
static int swithBreakTest(int idx)
{
    switch(idx) {
    case 0:
        OutputDebugString(L"0");
        break;
    case 1:
        OutputDebugString(L"1");
        break;
    case 2:
        OutputDebugString(L"2");
        break;
    }
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    swithBreakTest(/*idx=*/0);
    swithBreakTest(/*idx=*/1);
    swithBreakTest(/*idx=*/2);
}
//---------------------------------------------------------------------------

다음 이미지에서 녹색 중단 점은 유효하지 않습니다.
실제로 실행했는데, 녹색 부분에서는 멈추지 않았다.



MSP430 등에서는 _bis_SR_register(LPM3_bits + GIE); 의 다음의 행이 브레이크 포인트를 취할 수 없었다 ( 코멘트 ).
컴파일러의 최적화가 관련되어 있었다고 가르쳐 주신 적이 있지만, XE4에서도 같은 일이 일어나고 있는 것일까.

좋은 웹페이지 즐겨찾기