Форум » Clipper » Не запускается отладчик cld - Memory low » Ответить

Не запускается отладчик cld - Memory low

Lss: Не могу нормально отлаживать программы не запускается отладчик cld пишет - Memory low и вылетает. Программный комплекс разросся.

Ответов - 16

Lss: поможет ли уменьшение (или дробление на несколько мелких prg) самого большого prg или нужно все урезать?

Dima: Собираешь Rtlink ?

Lss: вроде только использую


Григорьев Владимир: Попробуйте задать расширенную память, то есть указать, если мне память не изменяет, в переменной среды Clipper параметр E с указанием конкретного значения вплоть до 8 мегабайт или больше в зависимости от версии Clipper.

Lss: версия 5.2, сколько можно указать ? и пример строки если можно.

Dima: Lss пишет: и пример строки если можно [pre] SET CLIPPER Формирует среду окружения Clipper программ ------------------------------------------------------------------------------ Переменные среды: SET CLIPPER=[E:<к-во Кбайтов расширенной памяти>] [;F:<<к-во файлов>] [;X:<<к-во Кбайтов>] [;BADCACHE] [;CGACURS] [;DYNF:<к-во файлов>] [;NOIDLE] [;SWAPK:<к-во ,байтов>] [;SWAPPATH:'<маршрут>'] [;TEMPPATH:'<маршрут>'] Командная строка вызова программы: C><имя программы> [//<установки>...][<аргументы>] Описание Система программирования Clipper обеспечивает возможность управления распределением памяти с помощью переменной среды DOS CLIPPER, определяющей характеристики этой среды. При запуске Clipper-программы она ищет переменную среды CLIPPER и затем распределяет память и(или) средства управления файлами в соответствии со значениями заданных в ней параметров. Установка значений переменной CLIPPER может быть выполнена при помощи директивы SET в ответ на приглашение DOS или путем включения ее в AUTOEXEC.BAT пользователя. Если запуск на выполнение прикладной программы будет производиться из сети, команда SET CLIPPER может быть включена в сценарий сеанса пользователя. Если установки прикладной программы задаются в командной строке, то перед ними должен стоять символ ( // ) и они должны быть заданы перед аргументами программы. Если вы желаете использовать метод командной строки вместо переменной среды CLIPPER, но скрыть командную строку от конечного пользователя, используйте вызов прикладной программы из .BAT файла, где будут сформированы установки среды. Установки E:<к-во Кбайтов расширенной памяти> - ограничивает количество байтов расширенной памяти, занимаемых автоматически до величины <к-во Кбайтов расширенной памяти>. Программы, компилированные и скомпонованные системой Clipper, могут использовать расширенную память, что повышает скорость обработки. Система программирования Сlipper 5.0 может использовать расширенную память, определенную в соответствии со спецификациями расширенной памяти EMS (Expanded Memory Specification) Lotus-Intel-Microsoft (LIM) версии 3.2 или выше. Расширенная память автоматически распределяется при запуске. При выполнении программы динамического распределения памяти не производится. Максимальный объем распределенной памяти ограничивается четырьмя факторами: ¦ Объемом доступной памяти ¦ Установкой переменной среды SET CLIPPER=Ennn ¦ Теоретическим максимумом в 8 Мбайт ¦ Объемом доступной оперативной (не расширенной) памяти Необходимо помнить, что определенный объем обычной (не расширенной) памяти должен быть использован для хранения управляющих таблиц системы виртуальной памяти - чем больше общий объем памяти (и обычной, и расширенной), тем большее пространство занимается этой управляющей информацией. Используемый объем расширенной памяти может быть меньше, чем объем действительно имеющейся в наличии памяти, если в обычной памяти недостаточно места для хранения управляющих таблиц. F:<к-во файлов> - используется в комбинации со значением, определенном с помощью параметра FILES файла CONFIG.SYS для того чтобы информировать Clipper о максимальном количестве файлов, используемых для обработки. Эта установка допустима только для прикладных программ, использующих более 20 файлов и выполняющихся под управлением операционной системы DOS версии 3.3 или выше. Если заданы оба значения, система Clipper определяет число файлов, которое может быть открыто одновременно, по меньшему из заданных параметром F или FILES в CONFIG.SYS. Например, если команда FILES устанавливает значение 120, а параметр F устанавливает значение 50, максимальное число файлов, которое может быть открыто, принимается равным 50. Идеальным является, если параметр <к-во файлов> задан нечетным числом и на 5 файлов меньше, чем задано в команде FILES. X:<к-во Кбайтов> - определяет количество памяти, исключаемое из имеющегося в наличии объема памяти, ( Х:<к-во Кбайт> не влияет на объем памяти, используемый для работы программы, вызванной командой RUN). Задается в килобайтах, допускаются значения от ноля до 64 включительно. Если не заданно, по умолчанию принимается ноль. BADCACHE заставляет механизм виртуальной памяти защищать и восстанавливать состояние "страничного блока" EMM до и после каждого обращения к EMM ("страничный блока" EMM - это область реального адресного пространства, через которую данные передаются EMM). Это должно сделать использование EMM Clipper невидимым для любого другого процесса, использующего EMM. Заметим, что в некоторых EMM-системах установка BADCACHE может не благоприятно сказаться на действиях механизма виртуальной памяти. Она должна применяться лишь тогда, когда вы проверяете порчу диска или файла из-за конфликта между программой, выполняющей кэширование диска и другим программным обеспечением. CGACURS - препятствует использование расширенных возможностей курсора адаптеров EGA/VGA. Задание этой установки может устранить некоторые режимы курсора для некоторых экранных адаптеров. CGACURS сохраняет курсор, когда Clipper программа работает в многозадачной или TSR среде. DYNF:<к-во файлов> - определяет количество файлов, используемых системой управления динамическими оверлеями. Допустимыми являются значения от 1 до 8 включительно. Если не заданно, по умолчанию принимается 2. NOIDLE - запрещает проверку наличия времени ожидания в процессе работы Clipper-программы и использования его системой. Во время выполнения программы может появиться время ожидания (ожидание ввода информации с клавиатур). Если установлен режим IDLE, система использует это время для сборки "мусора", корректировки файлов и других необходимых действий. Выполнение этих системных процедур производится во время выполнения программы в моменты ее ожидания ввода информации от пользователя. ---------------------------------------------------------------------- ¤ Примечание Установка режима NOIDLE для программ, имеющих время ожидания, нежелательно, т.к. это замедляет работу системы. Поэтому использование этого режима нежелательно. ---------------------------------------------------------------------- SWAPK:<к-во байтов> определяет максимально допустимый размер дискового "файла подкачки", используемого диспетчером виртуальной памяти. Установка задается в килобайтах. Допустимыми являются значения от 256 до 65535 включительно. При отсутствии этой установки по умолчанию принимается 16384 (16MB). ---------------------------------------------------------------------- ¤ Примечание Область свопинга запрашивается только когда это необходимо. Обычные установки не гарантируют от того, что "файл подкачки" будет достаточно велик. Из-за сбоев на диске или его ограниченного размера в процессе обращения в "файлу подкачки" может возникнуть аварийное завершение программы. ---------------------------------------------------------------------- SWAPPATH:'<маршрут>' - определяет расположение "файла подкачки" механизма виртуальной памяти. Если не задан, "файл подкачки" создается на текущем диске, в текущей директории. TEMPPATH:'<маршрут>' - управляет размещением временных файлов, создаваемых во время сортировки и индексации. По умолчанию эти файлы размещаются в текущей директории. ---------------------------------------------------------------------- ¤ Примечание Временные файлы, создаваемые во время сортировки и индексации могут быть очень большими. Установка TEMPPATH на диск с меньшим объемом (например виртуальный диск) может привести к ошибке. Обычно, для этих временных файлов, которые будут записаны, необходим объем в два раза больше чем размер самого большого создаваемого индексного файла или сортируемого файла базы данных. ---------------------------------------------------------------------- Примеры ¦ В этом примере показан ряд установок переменной среды окружения CLIPPER: SET CLIPPER=F:50;DYNF:4;SWAPK:4096;NOIDLE ¦ Этот пример показывает как те же самые установки могут быть использованы в командной строке прикладной программы: С>ACCOUNTS //F:50 //DYNF:4 //SWAPK:4096 //NOIDLE [/pre]

Lss: добавил переменную среды (в системные переменные) clipper значение 8192 не помогает в батник перед запуском cld SET PATH=\CLIPPER\BIN; set clipper=E:8192 ramclear rem cld @1 byt //F:99 /E rem cld @1 byt //F:115 //DYNF:4 //SWAPK:65535 //SWAPPATH:'C:\Sres\Temp' /E cld @1 byt //F:99 /s /m2 не помогает

Григорьев Владимир: Разгрузите память от всего лишнего. Посмотрите с помощью утилиты mem, что у вас находится в памяти. На время отладки своей Clipper-программы создайте временную конфинурацию, убрав из памяти все ненужные резидентные программы..

Lss: Какую память разгружать верхнюю или обычную ? Как? C:\Sres\SOURCE.520>mem /c TAME-MON Release 4.41 Copyright 1988-2002 by David G. Thomas TAME-MON installation complete. Обычная память : Имя Размер (десятичный) Размер (Hex) ------------- --------------------- ------------- MSDOS 14736 ( 14.4K) 3990 KBD 3296 ( 3.2K) CE0 HIMEM 1248 ( 1.2K) 4E0 HASPDOS 336 ( 0.3K) 150 COMMAND 4208 ( 4.1K) 1070 DOSX 34720 ( 33.9K) 87A0 TAME-MON 18176 ( 17.8K) 4700 СВОБОДНО 112 ( 0.1K) 70 СВОБОДНО 578288 (564.7K) 8D2F0 Всего СВОБОДНО : 578400 (564.8K) Верхняя память : Имя Размер (десятичный) Размер (Hex) ------------- --------------------- ------------- SYSTEM 200688 (196.0K) 30FF0 DOSX 128 ( 0.1K) 80 MOUSE 12528 ( 12.2K) 30F0 MSCDEXNT 464 ( 0.5K) 1D0 REDIR 2672 ( 2.6K) A70 СВОБОДНО 1104 ( 1.1K) 450 СВОБОДНО 44432 ( 43.4K) AD90 Всего СВОБОДНО : 45536 ( 44.5K) Всего доступно программам (обычной + верхней памяти): 623936 (609.3K) Максимальный размер программы: 577296 (563.8K) Максимальный размер блока верхней памяти: 44432 ( 43.4K) 1048576 байт - всего непрерывной дополнительной памяти 0 байт - доступно непрерывной дополнительной памяти 941056 байт - доступной памяти XMS резидентная часть MS-DOS загружена в сегмент HMA

nick_mi: Может все-таки использовать Blinker. Программу собрать в защищенном режиме и в нее включить отладчик.

nick_mi: Может еще попробовать опять же при сборке Blinker'ом уменьшить сегмент оверлея (BLINKER OVERLAY OPSIZE 20) и выделить программы в область статических оверлеев BeginArea ... EndArea

Pasha: Коллективный разум на comp.lang.clipper еще советует в переменной SET CLIPPER указывать BADCACHE: SET CLIPPER=F100;BADCACHE; Но боюсь, что ни это, ни использование блинкера не поможет. Начиная с некоторого размера prg отладчик перестает работать. Все-таки в морг

Lss: Pasha пишет: Начиная с некоторого размера prg отладчик перестает работать нужно уменьшить какой-то один prg? разбить один на два подойдет? какой максимальный размер prg что на него влияет больше всего?

Pasha: Lss пишет: нужно уменьшить какой-то один prg? разбить один на два подойдет? какой максимальный размер prg что на него влияет больше всего? Подойдет. А максимальный размер определяется эксперементально. У меня проблемы начинались, когда размер модуля подходил к 250К

gustow: У меня начинались иногда даже при 90-100К (но давно это было - с тех пор разучился плодить "слонопотамов").

inik296: Попробуй в AUTOEXEC.NT "ЗАРЕМИТЬ"(REM ") все загрузки резидентных программ: dosx, redir,mssdexnt. Это должно освободить памаять, доступную clipper, до 615K и отладчик может и проскочит



полная версия страницы