2013-09-30 3 views
3

값 '()'은 Delphi 디버거에서 표현식을 검사하거나 볼 때마다 계속 올라옵니다.델파이 디버거에서 '()'은 무엇을 의미합니까?

어떤 의미입니까? 그리고 그것이 어떤 종류의 대상을 나타내는 것이라면 그 대상의 상태를 어떻게 시각화 할 수 있습니까?

+0

세부 사항입니다. 그러한 표현의 예를 들어주십시오. –

+0

일반적으로 검사를 시작하면 도움이됩니다. 유형 정보가 확실하지 않으면 먼저 유형 캐스팅해야 할 수도 있습니다. –

답변

4

배열이나 개체 중 무엇을보고 있는지에 따라 두 가지를 의미 할 수 있습니다.

배열의 경우 0 개의 요소가 포함 된 배열 (일반적으로 동적 배열)을 의미합니다.

개체의 경우 약간 더 복잡합니다. 즉, 이 데이터 멤버를 포함하지 않는 형식 인으로 선언 된 개체를 검사하고 있음을 의미합니다. 코드에서 TObject (예 : 이벤트 핸들러의 Sender: TObject)으로 선언 된 변수를보고있는 경우 실제 유형은 거의 확실하게 TObject이 아니지만 디버거는이를 선언 된 유형으로 평가합니다.

이 작업을 수행, 객체에 대한 실제 데이터를 효율적으로 활용하려면 다음

  • 풀 업/수정합니다 (Ctrl-F7)을 평가합니다.
  • 개체의 실제 형식을 평가합니다. (Sender.classtype)
  • 실제 유형으로 캐스트 된 오브젝트를 평가하십시오. (TMyObject(Sender)). 이것은 객체가 실제로 무엇을 포함하고 있는지 알려줍니다.
+0

디버거가 객체의 클래스 유형을 자동으로 추출하고 실제 유형으로 검사 할만큼 똑똑하지 않은 것은 수치 스럽습니다. –