2011-08-25 8 views
4

널 포인터 예외가 발생했을 때 이전에 this 질문을했습니다. 이 경우 필자는 실제로 IronPython의 버그라는 것을 알게되었습니다.Ironpython : null 참조 예외 디버깅

이제 제 3 자 라이브러리 (C#으로 작성)를 사용할 때이 오류가 다시 발생했습니다. 라이브러리는 DotSpatial 라이브러리이며 실수로 IronPython 코드에 DotSpatial 메서드가 손상되는 부작용을 초래하는 조건을 만들었습니다. 참고로 호출 및 오류 메시지는 다음과 같습니다 문제가 myScheme 객체 또는 나는 그것의 방법에 통과 된 DataTable을하지 않았기 때문에

>>> myScheme.CreateCategories(myLayer.DataSet.DataTable) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
SystemError: Object reference not set to an instance of an object. 

이것은하지만 내가 가진 myScheme의 또 다른 속성, 디버깅하는 것이 특히 어려웠다 내가 CreateCategories에 액세스했다는 것을 알지 못하는 잘못된 설정.

무엇이 잘못되었는지 알아 보려면 DotSpatial source code을 읽어야했습니다. 그 일을하는 데 너무 많은 어려움을 겪지는 않지만 그러한 오류를 디버그하는 쉬운 방법이 있는지 궁금합니다. 아니면 IronPython 및 타사 라이브러리로 작업 중이므로 잘못된 오류 메시지가 표시됩니까?

답변

3

IronPython에서 예외 정보를 더 많이 표시 할 수있는 두 개의 명령 줄 스위치가 있습니다 (-X:ExceptionDetail-X:ShowClrExceptions). 그 중 하나 또는 둘 다 NullReferenceException이 발생한 곳까지 전체 스택 추적을 제공해야합니다.

+0

굉장합니다. 방금이 작업을 수행하는 방법을 알아 내려고 1 시간을 보냈습니다. 감사. – lesscode