Первое исключение: системная ошибка 8: недостаточно места для выполнения команды - PullRequest
0 голосов
/ 10 апреля 2009

как мне отладить что-то подобное? Мне нужен отладчик, чтобы остановиться и показать мне, где проблема. не просто показать это в журнале событий, а затем повесить.

исключение первого шанса: системная ошибка 8: недостаточно места для выполнения команды

Я использую Delphi 2009. Проблема не происходит регулярно. я не собираюсь засунуть в мою программу вызовы OutputDebugString, чтобы отследить это!

спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 10 апреля 2009

Вы смотрите на утечку ресурсов на вашем сервере, более чем вероятно ... Либо связано с обработкой, либо связано с памятью ...

У меня такое часто случалось, и это всегда так ... МОГУТ быть и другие причины, но я думаю, что утечка ресурсов - твоя причина № 1 ...

Вам придется либо найти его и исправить, либо начать устанавливать проверки отладки для всех выделений памяти, обрабатывать выделения и регистрировать их в любое время, когда вы не можете получить память или обработчики.

Также возможно, что у вашего компьютера КЛИЕНТА нет ресурсов, но обычно это ошибка сервера ...

Если все это не удастся, дайте нам больше представления о том, что вы делаете, как выглядит код и т. Д., Чтобы помочь выявить проблемы. Просто на основании одной ошибки, не много, чтобы продолжить ...

0 голосов
/ 11 апреля 2009

Если ваша программа использует много ресурсов Windows, это может быть нехватка ресурсов.

Существует запись в реестре, которую можно увеличить, чтобы увеличить размер кучи для XP. Для Vista Microsoft уже устанавливает значение по умолчанию выше. Я рекомендую изменить значение по умолчанию 3072 как минимум до 8192.

Эта информация задокументирована в ID статьи базы знаний 126962 (или в поиске «Недостаточно памяти»). Дополнительные сведения о значениях параметров можно найти в статье 184802. Код статьи базы знаний

Я предлагаю вам прочитать статью базы знаний, но основная информация об изменении:

1) Запустить редактор реестра (REGEDT32.EXE).

2) Из поддерева HKEY_ LOCAL_MACHINE перейдите в следующую папку:

   \System\CurrentControlSet\Control\Session Manager\SubSystem

3) В правой части экрана дважды нажмите клавишу:

   windows

4) Во всплывающем окне вы увидите выделенное очень длинное поле. Переместите курсор к началу строки, ища это (значения могут отличаться):

   SharedSection=1024,3072,512

5) SharedSection задает кучу системы и рабочего стола, используя следующий формат: SharedSection = xxxx, yyyy, zzz, где xxxx определяет максимальный размер кучи всей системы (в килобайтах), yyyy определяет размер кучи для каждого рабочего стола , а zzz определяет размер кучи рабочего стола для «неинтерактивной» оконной станции.

6) Измените ТОЛЬКО значение гггг на 8192 (или больше) и нажмите OK.

7) Выйдите из редактора реестра и перезагрузите компьютер, чтобы изменения вступили в силу.

Удачи

...