Не удается запустить интерактивный отладчик Informix 4GL

Я читаю Informix 4GL By Example. Ex4 выдает ошибку сегментации, поэтому я пытаюсь использовать отладчик, чтобы выяснить, где программа дает сбой, но отладчик не работает.

Изнутри r4gl я могу компилировать формы и модули. Но когда я отлаживаю, отображается пустой экран с надписью «Нажмите Return, чтобы продолжить».

Из командной строки fgldb возвращает следующую ошибку:

fgldb: symbol lookup error: fgldb: undefined symbol: kw__numkws

БД запущена и работает, я могу isql выполнять запросы.

Детали системы:

  • OpenSuSE 12.1 32 бит
  • Informix RDS 7.50 UC6
  • Informix SQL DEV 7.50 UC6
  • Informix Growth Edition 11.70 UC5
  • Интерактивный отладчик Informix 7.50 UC6

Я поискал в сети, но не нашел ничего полезного. Есть идеи, что случилось?

ОБНОВЛЕНИЕ 1:

Еще раз спасибо за помощь. Я попытаюсь установить в отдельный каталог и дам вам знать. Это, наверное, блондинка, но как мне установить в другой каталог. Если я попытаюсь получить сообщение об ошибке:

«INFORMIXDIR и рабочий каталог не совпадают». "INFORMIXDIR = / usr / informix" "Текущий рабочий каталог = / usr / informix / i4gl"

Могу ли я отредактировать $ INFORMIXDIR в соответствии с тем местом, где я хочу установить?

Большое спасибо,

Нил

ОБНОВЛЕНИЕ 2:

Хорошо, я установил их оба в / usr / informix / i4gl.

Установите переменные так, чтобы они указывали на этот каталог, но не уверен, какие именно из них нужно, потому что я все еще получаю ошибки.

  1. fgldb: -16326: Не удается открыть файл 'fgldb.iem'

/ Usr / informix / i4gl действительно содержит каталог msg / en_us / 0333, но этот файл там не существует, в то время как / usr / informix / msg / en_us / 0333 содержит файл fgldb.iem.

  1. isql -> Язык запросов: говорит «ВЫБРАТЬ БАЗУ ДАННЫХ», но мне ничего не показывается или не отображается.

С уважением

Нил

ОБНОВЛЕНИЕ 3:

Хорошо, мои светловолосые сети сейчас сходят с ума, но после установки в / usr / informix / i4gl я так и не изменил обратно переменную $ INFORMIXDIR. Я сделал это, а затем остановился и запустил БД.

Теперь при попытке скомпилировать демо-форму f_custkey.per (с использованием store_demo db, как и раньше) я получаю ошибки -329 и -2810, которые связаны с не найденной базой данных.

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

С уважением,

Нил

ОБНОВЛЕНИЕ 4 - Финал!

Хорошо, теперь он работает.

Выполните команду dbaccessdemo7 еще раз, чтобы воссоздать базу данных, и все в порядке.

Теперь работает компиляция и отладка ex4.

Большое спасибо за всю информацию. Учусь на ходу.

С уважением

Нил


person Neill    schedule 16.11.2012    source источник
comment
Спасибо за предоставленную информацию о системе и программном обеспечении - это очень помогает!   -  person Jonathan Leffler    schedule 17.11.2012


Ответы (3)


Дамп / сбой ядра, с которым вы столкнулись, - это досадная ошибка, о которой мы узнали ранее на этой неделе. Код ESQL / C исправлен (на сегодняшний день), но исправленные выпуски еще не доступны и не будут в ближайшее время (читайте «не раньше, чем после Дня благодарения»). Код I4GL и ISQL все еще требует исправления (некоторые отдельные, но тесно связанные проблемы).

Произошло то, что структура в CSDK изменила размер. I4GL будет компилировать код одного размера, а библиотеки CSDK ожидают другого размера; разница примерно 4 байта. Это приводит к затруднению отслеживания перезаписи памяти.

Проблема kw__numkws - это более старая проблема, которая, как я думал, была исправлена ​​в версии 7.50.UC6. Мне нужно будет проверить, было ли исправлено в этом выпуске, и если да, то как вы все еще видите эту ошибку.

Есть несколько краткосрочных вариантов, которые помогут вам начать работу, пока не станет доступен фиксированный ансамбль:

  1. Переустановите I4GL (и ISQL) в каталоге сервера. Я не доказал, что это сработает. Идея состоит в том, чтобы убедиться, что I4GL использует библиотеки CSDK, с которыми он был построен, а не обновленную версию 3.70.xC6.

  2. Переустановите I4GL (и ISQL) в отдельный каталог (возможно, /opt/IBM/i4gl). В этом каталоге есть подходящий sqlhosts файл; это может быть символическая ссылка на ссылку в каталоге IDS. Направьте программы I4GL в этот альтернативный каталог, соответствующим образом установив LD_LIBRARY_PATH.

Вариант 2 гарантирует, что I4GL использует «правильный» CSDK. Вариант 1 может дать такой же результат, но я не готов этого гарантировать. Следовательно, я предлагаю вариант 2.

Если ваш код I4GL должен запускать DB-Access или другие программы, найденные на сервере $INFORMIXDIR, есть способы справиться с этим - укажите в комментарии, и я объясню, но я бы не стал сбивать вас с толку, если в этом нет необходимости. (Это не так уж сложно, но и не совсем тривиально.)

person Jonathan Leffler    schedule 17.11.2012

Проблема с kw_numkws исправлена ​​в 7.50.UC6. Таким образом, следующий доступный пакет исправлений будет содержать исправление. Тем временем служба технической поддержки IBM опубликовала «Техническое предупреждение», в котором клиентам рекомендуется установить I4GL (и ISQL) в отдельный каталог - вариант № 2, предложенный выше Джонатаном Леффлером.

person Pradeep Natarajan    schedule 17.11.2012

Вариант 3. - выяснить, какой CSDK использовался для создания инструментов 4GL, и установить ТОГО вместо текущего. В случае 4GL 7.50FC6 это CSDK 3.70FC4.

У меня были проблемы с разделением двигателя и инструментов. Пока это работает.

person Todd M. Roy    schedule 08.03.2013