2014-08-29 1 views
1

템플릿에 중단 점을 설정할 때마다 무시됩니다. 이 문제를 해결할 수있는 방법이 있습니까? 예제 : if (list.size() ..의 중단 점이 무시되었습니다.템플릿의 중단 점이 무시됩니다. 해결 방법이 있습니까?

template <typename ObjectType, typename ContainerType> 
ContainerType CListModelBase<ObjectType, ContainerType>:: 
        sortListByColumn(const ContainerType &list, int column, 
            Qt::SortOrder order) 
{ 
    if (list.size() < 2) return list; // nothing to do 
    // ... 
} 

PS는 : GDB 위해 이러한 해결 방법은

봉투 here을 설명한다. Win7, VC2013, QtCreator 3.1.1

답변

2

이것은 인라인 및 디버거가 코드의 주소를 아는 것을 어렵게 만드는 여러 가지 다른 최적화로 인해 발생합니다. 당신이 컴파일 괜찮다면, 당신은 항상 브레이크 포인트를 강제 할 수

는 생성 된 코드에 배치 할 :

#include <intrin.h> 

... 

__debugbreak(); 

출처 : [http://msdn.microsoft.com/en-us/library/f408b4et.aspx]

+1

번 _asm int3; – Nowayz

1

해결 방법은 내가 사용하고 있습니다 : 쓰기 당신의 자신의 단언. I는 부스트 어설에서 단순화 어설 버전을 가지고

a) 단순한 지연 루프에 회전 가능) 어설

B 심지어 비 관련 정보를 표시 할 수

- 다음 종료 전용 또는 종료 또는 인쇄를 인쇄 할 수 있습니다) 등

C, 역 추적을 디버거를 연결하고 조사하기 위해 사용자를 허용

d) 아무런 변화가없는 것처럼 사용자가 직접 프로그램을 재개 할 수 있습니다. (큰 지연은 제외)

완벽하게 최적화되었거나 최적화되지 않은 경우 이러한 어설 션은 사용자의 부담을 덜어줍니다.

관련 문제