2009-11-12 4 views
0

내 소프트웨어를 사용할 때 shell32.dll 파일과 관련된 액세스 위반이 발생하기 시작한 사용자가 있습니다. 이것은 D2009에서 컴파일 된 첫 번째 버전 인 소프트웨어 최신 버전으로 업그레이드 한 후에 발생하기 시작했습니다.Delphi 2009에서 shell32.dll 오류가 발생 했습니까?

다른 사람이 AV 문제를보고하는 사람이 없으며 직접 복제 할 수 없었습니다. 따라서 Windows의 특정 설치와 관련이있는 것으로 보입니다. EurekaLog를 사용하기 때문에 이러한 AV 중 일부는 응용 프로그램에서 다양한 형식의 생성 또는 표시와 관련이 있음을 알 수 있습니다. 종종 다음 참조가 호출 스택의 마지막 항목으로 제공됩니다.

shell32.dll > ILIsEqual 

이 사용자를 어떻게 다시 얻을 수있는 아이디어가 있습니까? 또는 실제로 문제가 무엇인지 더 많은 단서를 얻을 수 있습니까? 과거에는 이러한 오류가 한 사용자의 컴퓨터에서만 발생하여 추적하기가 매우 어려웠습니다. ...

+0

클라이언트는 어떤 OS를 사용합니까? –

+0

호출 스택의 마지막 항목은 호출 스택의 코드 _에서 마지막으로 중요하지는 않습니다. 당신의 코드는 무엇을하고 있으며, 결국 쉘 32로 호출하는 함수는 무엇입니까? –

+0

클라이언트가 XP Pro SP3을 사용 중입니다. 문제는 내 코드의 마지막 것이 항상 같지 않다는 것입니다. 그리고 오류는 버튼을 클릭하는 것과 같은 반복적 인 작업에서 비롯된 것이 아닙니다. 또한 양식을 표시하는 것과 같은 간단한 작업에서 항상 그렇습니다. 나는 그의 OS 설치로 엉망이됐다고 생각하기 시작했다. – croceldon

답변

1

동의합니다. 이러한 오류를 복제하는 것은 어렵습니다. 이것이 품질 로깅이 중요한 이유입니다. 나는 그런 문제에 다음과 같은 접근법을 사용할 것이다.

  1. 를 사용하여 좋은 기록 방법
  2. 오류가 당신에게 보고서 (이미 보고서가)
  3. 만큼 사용자 컴퓨터 설정에 대한 보고서를 확인을 보내 사용자가 발생하면 (당신이 이미 가지고) 가능한 한
  4. 스택 추적을 확인하여 코드에서 오류가 발생했는지 또는 코드가 마지막으로 작성한 호출인지 확인하십시오.
  5. 여전히 오류를 찾거나 복제 할 수없는 경우 버전 시스템에서 새 응용 프로그램을 만듭니다. 해당 지점에서 스택 추적에서 식별 한 지점 주변의 로깅을 늘리십시오. 가능한 한 많이 기록하십시오. 사용자에게이 버전을 보냅니다.
  6. 다음 사용자 보고서를 기다리십시오.
  7. 절차를 반복하고 더 많은 로그를 남기고 필요할 경우 무거운 로그 반경을 줄이십시오.

시간이 있다면 사용자와 이야기 할 수도 있습니다. 이런 식으로 때로는 그들이 당신을 도울 수있는 중요한 새로운 정보를 알려줍니다.

나는 지난 주 정도에서 발견 할 수있는 두 개의 불쾌한 버그가있었습니다. 방금 목표를 향해 체계적으로 움직이기 시작했습니다. 그리고 내가 실수의 냄새를 맡았을 때 그것을 발견하는 것은 단지 시간 문제였습니다. 나는 당신이 체계적이라면 조만간 그 원인을 발견 할 것임을 알았습니다.

관련 문제