我正在通过实例阅读Informix 4GL。Ex4给出了一个分段错误,所以我试图使用调试器来找出程序在哪里失败,但是调试器不起作用。
在r4gl内部,我可以编译表单和模块。但是,当我调试时,它会显示一个空白屏幕,其中包含“按返回继续”。
在命令行中,fgldb返回以下错误:
fgldb: symbol lookup error: fgldb: undefined symbol: kw__numkwsDB已经启动并运行,我可以在其中运行isql并运行查询。
系统详细信息:
我搜过网,但没有发现任何有用的东西。你知道怎么回事吗?
更新1:
再次感谢你的帮助。我将尝试安装在一个独立的目录,并让你知道。这可能是金色的,但我如何安装在不同的目录。如果我试图犯错误:
"INFORMIXDIR和工作目录不匹配。“"INFORMIXDIR = /usr/informix“”当前工作目录= /usr/informix/i4gl“
我可以编辑$INFORMIXDIR以匹配我想要安装的位置吗?
非常感谢,
尼尔
更新2:
好的,所以我把它们都安装在/usr/informix/i4gl中。
将变量设置为指向该目录的变量,因为我仍然收到错误,所以不确定需要设置哪些变量。
/usr/informix/i4gl确实包含一个目录msg/en_us/0333,但该文件不存在,而/usr/informix/msg/en_us/0333确实包含fgldb.iem文件。
亲切的问候
尼尔
更新3:
好吧,我的金发妈妈们现在越来越疯狂了,但是在安装到/usr/informix/i4gl之后,我从未更改过$INFORMIXDIR变量。我做了这个,然后停止并启动DB。
现在,当尝试编译演示f_custkey.per (和以前一样使用stores_demo db )表单时,我得到了错误-329和-2810,这些错误与数据库没有找到有关。
我不知道这是不是你在上次发言中所说的。我不确定是否将这两个目录分割成单独的目录解决了我的调试器问题,因为现在我无法编译任何东西,但我感觉到我已经接近了。
致以亲切的问候,
尼尔
更新4-决赛!
好的,它现在起作用了。
再次运行dbaccessdemo7命令来重新创建数据库,在nod的土地上一切都很好。
编译和调试ex4现在可以工作了。
非常感谢你提供的所有信息。边学边学。
亲切的问候
尼尔
发布于 2012-11-17 01:55:18
您所遇到的核心转储/崩溃是我们本周早些时候发现的一个不幸的错误。ESQL/C代码是固定的(从今天起),但是固定版本还没有发布,而且也不会有一段时间(读“最早要等到感恩节之后”)。I4GL和ISQL代码仍需修复(一些单独但密切相关的问题)。
所发生的是一个结构改变了CSDK的大小。I4GL将用一个大小编译代码,而CSDK库需要另一个大小;差别大约为4个字节。这导致很难跟踪内存覆盖。
kw__numkws问题是一个较旧的问题,我认为是在7.50.UC6中解决的。我必须检查这个版本是否得到了修复,如果是的话,您是如何看到这个错误的。
有几个短期的选择,可以让你在固定组合出现之前:
/opt/IBM/i4gl)。在这个目录中有一个合适的sqlhosts文件;它可能是一个指向IDS目录中的一个的符号链接。将I4GL程序指向这个替代目录,适当地设置LD_LIBRARY_PATH。选项2确保I4GL使用的是“正确的”CSDK。选项1可能实现同样的结果,但我还没有准备好保证它。因此,我建议备选案文2。
如果您的I4GL代码需要运行DB(访问或服务器$INFORMIXDIR中的其他程序),那么有一些方法可以在注释中说明,我会解释,但是如果没有必要,我宁愿不让您感到困惑。(这并不难,但也不完全是微不足道的。)
发布于 2012-11-17 02:07:16
kw_numkws的发行是固定的7.50.UC6。因此,下一个可用的补丁包将得到修复。在此期间,发布了一个“技术警报”,建议客户在一个单独的目录中安装I4GL (和ISQL) --上面Jonathan建议的选项#2。
发布于 2013-03-08 20:02:17
选项3是发现什么CSDK用于创建4GL工具,并安装它而不是当前的工具。对于4GL 7.50FC6,则为CSDK 3.70FC4。
我很难把引擎和工具分开。到目前为止,这似乎是可行的。
https://stackoverflow.com/questions/13411922
复制相似问题