Can't run Informix 4GL Interactive Debugger - debugging

I am reading through Informix 4GL By Example. Ex4 is giving a segmentation fault so I am attempting to use the debugger to find out where the program is failing, but the debugger is not working.
From within r4gl, I can compile forms and modules. But when I debug it shows a blank screen with
"Press Return to continue".
From the command line fgldb returns the following error:
fgldb: symbol lookup error: fgldb: undefined symbol: kw__numkws
DB is up and running, I can isql in and run queries.
System details:
OpenSuSE 12.1 32 bit
Informix RDS 7.50 UC6
Informix SQL DEV 7.50 UC6
Informix Growth Edition 11.70 UC5
Informix Interactive Debugger 7.50 UC6
I have searched the net, but have not found anything helpful. Any idea what's wrong?
UPDATE 1:
Thank you again for the assistance. I will be trying to install in a seperate directory and let you know. This is probably blonde but how do I install in a different directory. If I attempt to I get errors:
"INFORMIXDIR and working directory do not match."
"INFORMIXDIR = /usr/informix"
"Current working directory = /usr/informix/i4gl"
Can I edit $INFORMIXDIR to match where I want to install?
Many thanks,
Neill
UPDATE 2:
OK, so I got them both installed in /usr/informix/i4gl.
Set variables to point to that directory, not sure exactly which ones need to though because I still receive errors.
fgldb: -16326: Cannot open file 'fgldb.iem'
The /usr/informix/i4gl does contain a directory msg/en_us/0333, but that file does not exist there, while /usr/informix/msg/en_us/0333 does include the fgldb.iem file.
isql -> Query Language: Says SELECT DATABASE, but none or shown for me to select.
Kind regards
Neill
UPDATE 3:
OK, my blonde momnets are getting crazy now, but after installing into /usr/informix/i4gl, I never changed back the $INFORMIXDIR variable. I did this and then stopped and started the DB.
Now when trying to compile the demo f_custkey.per (using stores_demo db as before) form, I get errors -329 and -2810, which are to do with the database not found.
I am not sure if this is what you were talking about in your last statement. I am unsure if splitting these two into seperate directories has solved my debugger issue because now I can't compile anything, but I sense I am getting close.
Kind regards,
Neill
UPDATE 4 - Final!
OK, so it is working now.
Ran the dbaccessdemo7 command again to recreate the database and all is well in the land of nod.
Compiling and debugging ex4 now works.
Thank you so much for all the information. Learning as I go.
Kind regards
Neill

The kw_numkws issue is fixed post 7.50.UC6. So the next available fixpack will have the fix.
In the interim, IBM Technical Support has posted a "Tech Alert" advising customers to install I4GL (and ISQL) in a separate directory - option #2 suggested by Jonathan Leffler above.

The core dump/crash that you're hitting is an unfortunate bug that we found out about earlier this week. The ESQL/C code is fixed (as of today), but the fixed releases are not yet available, and won't be for a while (read 'until after Thanksgiving at the earliest'). The I4GL and ISQL code still has to be fixed (some separate, but closely related problems).
What's happened is that a structure changed size in the CSDK. I4GL will be compiling the code with the one size and the CSDK libraries are expecting another size; the difference is about 4 bytes.
This leads to hard to track memory overwriting.
The kw__numkws issue is an older problem that I thought was fixed in 7.50.UC6. I'll have to check whether that release did get the fix, and if so, how you are seeing that error still.
There are a couple of short-term options that should get you going until a fixed ensemble is available:
Reinstall I4GL (and ISQL) in the server directory. I've not proved that this will work. The concept is to make sure I4GL is using the CSDK libraries it was built with, rather than the updated 3.70.xC6 version.
Reinstall I4GL (and ISQL) in a separate directory (/opt/IBM/i4gl, perhaps). Have a suitable sqlhosts file in this directory; it might be a symlink to the one in the IDS directory. Point the I4GL programs at this alternative directory, setting LD_LIBRARY_PATH appropriately.
Option 2 ensures that I4GL is using the 'correct' CSDK. Option 1 may achieve the same result, but I'm not ready to guarantee it. Consequently, I suggest option 2.
If your I4GL code needs to run DB-Access or other programs found in the server $INFORMIXDIR, there are ways to deal with that — indicate in a comment and I'll explain, but I'd rather not confound you if there's no need. (It's not dreadfully hard, but it isn't completely trivial either.)

Option 3. is to discover what CSDK was used to create the 4GL tools and install THAT instead of the current one. In the case of 4GL 7.50FC6 it CSDK 3.70FC4.
I had problems splitting up the engine and the tools. This appears to work, so far.

Related

How to configure this .pl file

I'm trying to import or install MusicBrainz' database and I'm following this instruction.
My OS is Windows so I'm following Windows instruction. I've done up to number 4, but when I opened to configure settings.pl file(link) I couldn't understand what that file wants me to configure.
I think the lines looking like this
$g_schema_url = "$schema_base/admin/sql/CreateTables.sql";
is the part I need to change for the file to work, but I don't think I understand these lines.
I googled and found out that .pl files are the files written in a language called Perl. But I didn't download or install the language because the instruction didn't require me to. Should I? I really am a beginner so even I sound stupid I hope you can understand.
I'm working on Oracle 11.
I've never used MBZDB before, but I looked through the settings.pl and I don't believe for a standard install you should need to change anything. You should be able to move on to step 6.
Edit: I was incorrect: I failed to notice you are using an Oracle database. As a commenter posted, it looks like it will work best with MySQL. If you install that, though, you should be good to go.

Installing Oracle database 11g on Window fails

I got in really stupid situation.
First I am a newbie at Oracle and my English is dumb, I'm trying to install Oracle based on some available tutorial on Google. Exactly this one :
http://allaboutobiee.blogspot.com/2013/09/step-by-step-installation-of-oracle-11g.html
But I was stuck at top 5 as the installing window suddenly disappear with no clues or errors occurred. I started searching on google for solution and I found this answer seems to work. But the problem is I dont know HOW TO APPLY this answer :
"I was having a similar problem (mentioned in another thread I'm still looking for to respond), but it would fail (without notice) when selecting "desktop class" (step 3). We found that there was a problem with the included javaw.exe file, so used the following start line in the command line (from wherever setup.exe is located):
setup -jreLoc c:\PROGRA~1\java\jdk1.6.0_25
(Modify to reflect the location of an alternate JRE, like the one I used above.)
Hopefully this helps. If not, good luck!"
First I tried to turn on my cmd and type this : "setup -jreLoc c:\PROGRA~1\java\jdk1.6.0_25"
it shown up this message : "Setup is not recognized as an internal or external command,,....."
Can you guys help me, as a newbie, solve my problem ??
Try below steps:
Download oracle 11g from oracle site
http://www.oracle.com/technetwork/indexes/downloads/index.html#database
Files details
win64_11gR2_database_1of2 approx size - 2.12 GB
win64_11gR2_database_2of2 approx size - 948 MG
Copy the database folder from win64_11gR2_database_2of2 and paste it in win64_11gR2_database_1of2.
Run the setup.exe from win64_11gR2_database_1of2 folder.
Good Luck!

Compiling YouCompleteMe on Windows gives "CM libraries found in old YouCompleteMe/python location" error

I've followed these directions exactly.
I was able to compile mingw32-make ycm_support_libs and it produced the necessary ycm_core.pyd, ycm_client_support.pyd, and libclang.dll files. However, I get this message when starting vim:
YCM libraries found in old YouCompleteMe/python location; please RECOMPILE YCM.
I have verified that all the tools I've used are 64bit version. Anything I find on the web about this just says to run ./install.sh --clang-completer, which should be doing exactly what mingw32-make ycm_support_libs does.
I was so close too! Any help?
The file that is produced from the compile doesn't need to be moved. This was an old instruction that is now obsolete. I've managed to get C/C++ auto-complete working on Windows 7.
https://github.com/Valloric/YouCompleteMe/issues/1172
From the above link: Oh I see... sorry :P Anyway I don't know when was the last time someone modified the wiki page on installing YCM on Windows. The wiki page is community maintained. The error is caused by the fact that before YCM was splitted in two repo (this one for the vim client, and one for the general backend, ycmd) the compiled libraries were putted in YouCompleteMe/python now instead are putted in YouCompleteMe/third_party/ycmd. Anyway we can continue to discuss this but I have to close this issue since is not a YCM bug and Windows is not supported officially.

Assist with: Interface Builder was unable to determine the type of "FileName.xib"

I'm working on source code for an IPA another developer is building for me. Hadn't made any adjustments as of yet because, knowing how temperamental the environment can be, wanted to do a test build first of the freshly unpacked project. I'm getting two errors right off the bat, saying:
Interface Builder was unable to determine the type of "FileName.xib"
("FileName" is a placeholder for the two files represented. Error message is the same for both.)
I've done some research and found this could be an XCode version issue between the developer and myself, but the developer won't be available to ask until next week, and I've got some critical testing to do this weekend. Need to get this one resolved as soon as possible.
Any advice would be helpful.
Thanks.
Cayce

Debug PostgreSQL function using pgAdmin

I refer this to enable the debugger in the PostgreSQL server in order to debugging the plpgsql function by stepping through the code using pgadmin.
I have already set shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll' in the postgresql.conf, run pldbgapi.sql , and restarted the server.
These steps should have been run successfully and plugin_debugger.dll should be loaded successfully as can be verified by using the command show shared_preload_libraries, and I can see the debugging option in the context menu with a right click on a function in pgAdmin.
When choosing "Debugging" --> Debug, a window pops up to allow me to enter the values for the input parameters. But after that, when I press OK, it does not respond at all.
Any ideas or did I miss something in the setup of the debugger on the server?
I am using PostgreSQL 8.3 and pgAdmin 1.14
You have to enable debugging in two places. On PGAdmin and on the database itself. That article you referenced does a wonderful job explaining it but there were some nuances.
PGAdmin
When updating your postgresql.conf file to load the debugging library, I was running PGAdmin on Windows so the file was here:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
And the path to the plugin_debugger.dll was actually
$libdir/plugin_debugger.dll
not
$libdir/plugins/plugin_debugger.dll
as specified in the article. So your postgresql.conf would need a line like this
shared_preload_libraries = '$libdir/plugin_debugger.dll'
Search for the actual .dll if you're in doubt. If you're on Linux the file you'll be looking for is plugin_debugger.so. Don't forget that changing the postgresql.conf file will require a restart for the change to take effect.
PostgreSQL Database
Assuming you're running your PostgreSQL database on a Linux server this gist does an excellent job at explaining how to download the dependencies for enabling debugging. Make sure you're running as root when you install.
The part that's easy to miss is issuing the command against the actual database you want to debug. For newer versions on PostgreSQL all you'll need to do is this:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
If that doesn't return an error, you should be good to go.
Some additional things of note:
As mentioned above, you can only debug when running as a super user account
From their docs you can only debug pl/pgsql functions. So if your function says something like LANGUAGE c PGAdmin won't even show a right-click Debug menu option when you select the function. Look for something that has LANGUAGE plpgsql and the Debug menu should show.
Ken,
Have you tried pgAdmin 1.8 to rule out issue with PgAdmin 1.14/ PostgreSQL 8.3 interaction. It's been a while since I've used 8.3 and for the article I wrote -- which you are referring to, I was testing with 1.14/ PostgreSQL 9.1 so it could very well be an issue with the interaction with older version. Unfortunately I don't have a 8.3 anymore to test with.
I vaguely remember having the issue you had once, but it was when I had another shared library in my postgresql.conf in addition to the pldebugger. Can't remember which one that was, but removing the other shared library fixed my issue.
Hope some of these suggestions help,
Regina
I had the same problem.
Make sure the only shared lib you´re loading in the postgres.conf is the debugger.
Nothing else. Not even the profiler.
If you get a SSL error when trying to debug a function, reconnect to the server.

Resources