2012-11-16 74 views
2

我正在通過示例閱讀Informix 4GL。 Ex4提供了分段錯誤,所以我試圖使用調試器來找出程序失敗的位置,但調試器不工作。無法運行Informix 4GL交互式調試器

r4gl以內,我可以編譯窗體和模塊。但是,當我調試它顯示一個空白屏幕與 「按Return鍵繼續」。

從命令行fgldb返回以下錯誤:

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

DB是建立和運行,我可以在isql並運行查詢。

系統的細節:

  • OpenSuSE的12.1 32位
  • Informix的RDS 7.50 UC6
  • Informix的SQL DEV 7.50 UC6
  • Informix的生長版11.70 UC5
  • Informix的交互式調試7.50 UC6

我查了網,但沒有發現任何有用的東西。任何想法有什麼不對?

更新1:

再次感謝您的幫助。我將嘗試安裝在一個單獨的目錄中並讓你知道。這可能是金髮女郎,但我如何安裝在不同的目錄中。如果我嘗試獲取錯誤:

「INFORMIXDIR和工作目錄不匹配。」 「INFORMIXDIR =在/ usr/Informix的」 「當前的工作目錄=在/ usr/Informix的/ I4GL」

我可以編輯$ INFORMIXDIR匹配,我想安裝?

非常感謝,

奧尼爾

更新2:

OK,所以我讓他們都安裝在/ usr/Informix的/ I4GL。

將變量設置爲指向該目錄,但不確定究竟需要哪些,因爲我仍然收到錯誤。

  1. fgldb:-16326:無法打開文件 'fgldb.iem'

在/ usr/Informix的/ I4GL確實包含目錄味精/ EN_US/0333,但文件不存在那裏,而/ usr/informix/msg/en_us/0333確實包含fgldb.iem文件。

  1. isql - >查詢語言:說SELECT DATABASE,但沒有或顯示供我選擇。

親切的問候

奧尼爾

更新3:

好了,現在我的金髮momnets越來越瘋狂,但安裝到/ usr/Informix的/ I4GL之後,我從來沒有改回來了$ INFORMIXDIR變量。我這樣做,然後停下來,並啓動數據庫。

現在,當試圖編譯演示f_custkey.per(使用stores_demo數據庫像以前一樣)窗體時,我得到錯誤-329和-2810,這是與數據庫未找到。

我不確定這是否是您在上次聲明中所談論的內容。我不確定是否將這兩個分離爲獨立的目錄解決了我的調試器問題,因爲現在我無法編譯任何東西,但是我感覺我正在接近。

親切的問候,

奧尼爾

UPDATE 4 - 總決賽!

好的,所以它現在工作。

再次運行dbaccessdemo7命令以重新創建數據庫,並且所有的點都在井中。

編譯和調試ex4現在可以使用。

非常感謝你的所有信息。隨我學習。

親切的問候

奧尼爾

+0

非常感謝您提供系統和軟件信息 - 它幫助了很多! –

回答

2

核心轉儲/墜毀你打的是一個不幸的錯誤,我們對本週早些時候發現了。 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發現其他節目,也有辦法對付的是 - 表明在一個評論,我會解釋,但我如果沒有必要,寧可不要讓你感到困惑。 (這不是很難,但也不是完全微不足道。)

3

kw_numkws問題在7.50.UC6後修復。所以下一個可用的修復包會有修復。 在此期間,IBM技術支持部門發佈了一項「技術警報」,建議客戶將I4GL(和ISQL)安裝在單獨的目錄中 - 上面的Jonathan Leffler建議的選項#2。

1

選項3.將發現CSDK用於創建4GL工具並安裝THAT而不是當前的工具。在4GL 7.50FC6的情況下,它是CSDK 3.70FC4。

我在拆分引擎和工具時遇到了問題。到目前爲止,這似乎工作。