2009-04-10 4 views
0

어떻게 이런 식으로 디버깅합니까? 디버거가 멈추고 문제가있는 곳을 알려줘야합니다. 이벤트 로그에 표시하지 말고 & 그 다음 기다려주십시오.첫 번째 예외 : 시스템 오류 8 : 명령을 수행 할 수있는 저장 공간이 부족합니다.

첫 번째 예외 : 시스템 오류 8 : 충분하지 않은 저장 공간은 명령

내가 문제가 regulary에 발생하지 않습니다 델파이 2009을 사용하고 있는데을 수행 할 수 있습니다. 나는 이것을 추적하기 위해 OutputDebugString 호출로 내 프로그램을 후진 시키려하지 않는다!

도와 주셔서 감사합니다.

답변

3

당신은 ... 것보다 더 많은 서버의 자원 누출,보고있는 어느

나는이 많이 발생 했어, 그것은 항상 사건 ... 관련, 또는 메모리 관련 처리합니다. .. 거기에 다른 원인이있을 수 있지만 리소스 누수가 # 1 원인은 생각합니다 ...

당신은 그것을 찾아서 고치거나 모든 메모리 할당에 디버그 체크를 넣어야합니다. 할당을 처리하고, 메모리 나 핸들을 얻을 수 없을 때마다이를 기록합니다.

그것은 당신의 클라이언트 시스템 리소스가 부족한이지만, 일반적으로,이 고장에서 서버의 가능성도

...

모든 것을 실패하는 것은, 우리에게 당신이 무엇을하고 있는지 좀 더 생각, 어떤 코드 외모를 제공 같은, 등, 문제를 발견하는 데 도움이됩니다. 그냥 혼자서 오류를 기반으로, 많이 가야하지 않습니다 ...

+0

로컬 Access 데이터베이스를 사용하는 데스크톱 응용 프로그램입니다. 컴퓨터에 자원이 없어야합니다. 나는 그런 오류가 발생할 때 디버거가 멈출 수 있기를 바랬다. 나는 약 10 년 델파이 경험이 있고 이것은 내가 본 두 번째 오류입니다! 요점까지 –

+0

더, 나는 그것이 일어나고있는 코드에서 아직 모르겠다. 타사 그래프 엔진과 계측기와 통신하는 C/C++ DLL을 사용하는 약 60,000 라인 프로그램입니다. 여기에 많은 일이 있습니다 ... –

+0

글쎄, 예외로 던져진 오류입니까 아니면 그냥 이벤트 로그에 나타나고 있습니까? 이와 같은 오류의 경우 코드가 잡히더라도 어떤 식 으로든 응답해야합니다 ... 그렇지 않다면 코드가 전혀 아닐 수도 있지만 서비스 등을 발생시키는 누수가 발생할 수 있습니다. 그것을 evtlog. – LarryF

0

프로그램이 많은 Windows 리소스를 사용하는 경우 리소스 힙 부족 수 있습니다.

XP 용 힙 크기를 높이기 위해 증가시킬 수있는 레지스트리 항목이 있습니다. Vista의 경우 Microsoft는 이미 기본값을 더 높게 설정합니다. 기본 3072를 최소 8192로 변경하는 것이 좋습니다.

이 정보는 기술 자료 문서 ID 126962 (또는 "Out of Memory"검색)에 설명되어 있습니다. 매개 변수 값을 관련된 추가적인 세부 사항은 내가 제안 184802.

당신이 기술 자료 문서하지만 변화에 대한 기본적인 정보를 읽는 기술 자료 기술 자료에서 발견 될 수있다이다 :

1) 레지스트리 편집기를 실행 (REGEDT32.EXE). HKEY_ LOCAL_MACHINE 하위 트리

2) 다음 폴더로 이동 : 화면의 오른쪽에

\System\CurrentControlSet\Control\Session Manager\SubSystem 

3) 키를 두 번 클릭 :

windows 

4) 팝업 창에서 매우 긴 필드가 선택됩니다. 이 찾는 문자열의 시작 부분에 커서를 이동 (값은 다를 수 있음) :

SharedSection=1024,3072,512 

5) SharedSection은 시스템 및 데스크탑 다음 형식을 사용하여 힙 지정 SharedSection의 = xxxx를, YYYY을 ZZZ를 xxxx는 정의 경우 시스템 전체 힙의 최대 크기 (KB), yyyy는 데스크톱 힙 당 크기를 정의하며 zzz는 "비대화 형"창 스테이션의 데스크톱 힙 크기를 정의합니다.

6) yyyy 값만 8192 이상으로 변경하고 확인을 누릅니다.

7) 레지스트리 편집기를 종료하고 PC를 재부팅하여 변경 사항을 적용하십시오.

굿 럭

관련 문제