无法运行Informix 4GL Interactive Debugger

时间:2012-11-16 07:01:37

标签: debugging informix suse

我正在阅读Informix 4GL示例。 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 Interactive Debugger 7.50 UC6

我在网上搜索过,但没有找到任何帮助。知道什么是错的吗?

更新1:

再次感谢您的帮助。我将尝试安装在一个单独的目录中,让你知道。这可能是金发女郎,但如何安装在不同的目录中。如果我试图收到错误:

“INFORMIXDIR和工作目录不匹配。” “INFORMIXDIR = / usr / informix” “当前工作目录= / usr / informix / i4gl”

我可以编辑$ INFORMIXDIR以匹配我要安装的位置吗?

非常感谢,

尼尔

更新2:

好的,所以我把它们都安装在/ usr / informix / i4gl。

将变量设置为指向该目录,不确定究竟需要哪些变量,因为我仍然会收到错误。

  1. fgldb:-16326:无法打开文件'fgldb.iem'
  2. / usr / informix / i4gl包含目录msg / en_us / 0333,但该文件不存在,而/ usr / informix / msg / en_us / 0333包含fgldb.iem文件。

    1. isql - >查询语言:表示SELECT DATABASE,但没有或显示供我选择。
    2. 亲切的问候

      尼尔

      更新3:

      好吧,我的金发女郎现在变得疯狂,但在安装到/ usr / informix / i4gl之后,我从未改变过$ INFORMIXDIR变量。我做了这个,然后停下来启动了数据库。

      现在,在尝试编译演示f_custkey.per(使用stores_demo db)之前,我得到错误-329和-2810,这与未找到的数据库有关。

      我不确定这是你在上次发言中所说的。我不确定是否将这两个分成单独的目录已经解决了我的调试器问题,因为现在我无法编译任何东西,但我觉得我越来越近了。

      亲切的问候,

      尼尔

      更新4 - 决赛!

      好的,现在它正在运作。

      再次运行dbaccessdemo7命令重新创建数据库,并且一切都在点头。

      编译和调试ex4现在可以正常工作。

      非常感谢您提供的所有信息。我一边学习。

      亲切的问候

      尼尔

3 个答案:

答案 0 :(得分:3)

kw_numkws问题在7.50.UC6之后修复。所以下一个可用的fixpack将有修复。 在此期间,IBM技术支持部门发布了一份“技术警报”,建议客户将I4GL(和ISQL)安装在一个单独的目录中 - 由Jonathan Leffler建议的#2选项。

答案 1 :(得分: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。

  3. 选项2确保I4GL使用'正确'的CSDK。选项1可能会达到相同的结果,但我还没有准备好保证它。因此,我建议选择2。

    如果你的I4GL代码需要运行DB-Access或服务器$INFORMIXDIR中的其他程序,有办法解决这个问题 - 请在评论中说明,我会解释,但我不想如果没有必要,你会感到困惑。 (这不是很难,但它也不是完全无足轻重的。)

答案 2 :(得分:1)

选项3.是发现CSDK用于创建4GL工具并安装THAT而不是当前工具。在4GL 7.50FC6的情况下,它是CSDK 3.70FC4。

我在拆分引擎和工具时遇到了问题。到目前为止,这似乎有效。