无法运行 Informix 4GL 交互式调试器
Posted
技术标签:
【中文标题】无法运行 Informix 4GL 交互式调试器【英文标题】:Can't run Informix 4GL Interactive Debugger 【发布时间】:2012-11-16 07:01:36 【问题描述】:我正在阅读 Informix 4GL By Example。 Ex4 给出了分段错误,因此我尝试使用调试器找出程序失败的位置,但调试器无法正常工作。
在r4gl
中,我可以编译表单和模块。但是当我调试它显示一个空白屏幕
“按回车键继续”。
从命令行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 增长版 11.70 UC5 Informix 交互式调试器 7.50 UC6我在网上搜索过,但没有找到任何有用的东西。知道有什么问题吗?
更新 1:
再次感谢您的帮助。我将尝试安装在单独的目录中并让您知道。这可能是金发女郎,但我如何安装在不同的目录中。如果我尝试得到错误:
“INFORMIXDIR 和工作目录不匹配。” “INFORMIXDIR = /usr/informix” "当前工作目录 = /usr/informix/i4gl"
我可以编辑 $INFORMIXDIR 以匹配我要安装的位置吗?
非常感谢,
尼尔
更新 2:
好的,所以我将它们都安装在 /usr/informix/i4gl 中。
将变量设置为指向该目录,但不确定需要哪些变量,因为我仍然收到错误。
-
fgldb:-16326:无法打开文件“fgldb.iem”
/usr/informix/i4gl 确实包含目录 msg/en_us/0333,但该文件不存在,而 /usr/informix/msg/en_us/0333 确实包含 fgldb.iem 文件。
-
isql -> 查询语言:说 SELECT DATABASE,但没有或显示供我选择。
亲切的问候
尼尔
更新 3:
好吧,我的金发妈妈们现在都快疯了,但是在安装到 /usr/informix/i4gl 之后,我再也没有改回 $INFORMIXDIR 变量。我这样做了,然后停止并启动了数据库。
现在,当尝试编译演示 f_custkey.per(像以前一样使用 stores_demo db)表单时,我收到错误 -329 和 -2810,这与找不到数据库有关。
我不确定这是否是您在上一次声明中所说的。我不确定将这两个拆分到单独的目录是否解决了我的调试器问题,因为现在我无法编译任何东西,但我感觉我快接近了。
亲切的问候,
尼尔
更新 4 - 决赛!
好的,现在可以使用了。
再次运行 dbaccessdemo7 命令重新创建数据库,一切顺利。
现在可以编译和调试 ex4。
非常感谢您提供的所有信息。边走边学。
亲切的问候
尼尔
【问题讨论】:
感谢您提供系统和软件信息,这对您有很大帮助! 【参考方案1】:kw_numkws 问题在 7.50.UC6 后得到修复。所以下一个可用的修复包将有修复。 在此期间,IBM 技术支持发布了“技术警报”,建议客户将 I4GL(和 ISQL)安装在单独的目录中 - 上面 Jonathan Leffler 建议的选项 #2。
【讨论】:
【参考方案2】:您遇到的核心转储/崩溃是我们本周早些时候发现的一个不幸的错误。 ESQL/C 代码是固定的(截至今天),但固定版本尚不可用,并且暂时不会可用(阅读“最早直到感恩节之后”)。 I4GL 和 ISQL 代码仍然需要修复(一些独立但密切相关的问题)。
发生的情况是 CSDK 中的结构改变了大小。 I4GL 将使用一种大小编译代码,而 CSDK 库需要另一种大小;差异大约是 4 个字节。 这导致难以跟踪内存覆盖。
kw__numkws
问题是一个较老的问题,我认为在 7.50.UC6 中已修复。我将不得不检查该版本是否确实得到了修复,如果是的话,你是如何看到这个错误的。
有几个短期选项可以让您继续前进,直到有固定的合奏可用:
在服务器目录中重新安装 I4GL(和 ISQL)。我还没有证明这会奏效。这个概念是为了确保 I4GL 使用它构建时使用的 CSDK 库,而不是更新的 3.70.xC6 版本。
在单独的目录(可能是/opt/IBM/i4gl
)中重新安装 I4GL(和 ISQL)。在这个目录下有一个合适的sqlhosts
文件;它可能是 IDS 目录中的符号链接。将 I4GL 程序指向此替代目录,适当设置 LD_LIBRARY_PATH。
选项 2 确保 I4GL 使用的是“正确的”CSDK。选项 1 可能会达到相同的结果,但我不准备保证。因此,我建议选项 2。
如果您的 I4GL 代码需要运行 DB-Access 或在服务器 $INFORMIXDIR
中找到的其他程序,有一些方法可以解决这个问题 - 请在评论中指出,我会解释,但我不想让您感到困惑如果没有必要。 (这不是非常难,但也不是完全微不足道的。)
【讨论】:
【参考方案3】:选项 3. 是发现用于创建 4GL 工具的 CSDK 并安装 THAT 而不是当前的。在 4GL 7.50FC6 的情况下,它是 CSDK 3.70FC4。
我在拆分引擎和工具时遇到了问题。到目前为止,这似乎有效。
【讨论】:
以上是关于无法运行 Informix 4GL 交互式调试器的主要内容,如果未能解决你的问题,请参考以下文章