12-07-2009
Using dbx on AIX
Hi,
We are porting a virtual machine application which emits native PowerPC instructions. The instructions are written to the data segment and are then executed, similar to the JIT / hot spot technology used in the Java VM.
The problem is that the AIX debugger (dbx) will not show me stack frames which contain the native code, presumably because they live in the data segment and not the code segment. Does anyone know a way around this? I'm thinking there must be someone out there that has done this because porting the Java VM to AIX would encounter the same issue.
We use xlC_r version 10 to compile and link the (64 bit) app on AIX 5.3.
I would *love* to use gdb instead of dbx to do this, but unfortunately I cannot get any version of gdb to work correctly with 64 bit programs on AIX (gdb does work OK with 32 bit programs).
thanks in advance for any help....
Norm Green
GemStone Systems Inc.
10 More Discussions You Might Find Interesting
1. Programming
Which is better??
I have always been a gdb fan.. But ppl say dbx is beter better for debugging the core.. Do all GDB lovers agree to it???
:cool: (1 Reply)
Discussion started by: jyotipg
1 Replies
2. Programming
I am trying to debug a program, which had generated a core dump. When I issue 'where' command, it list me filename along with line number, which in case is not at all there in the .c file.
Example:
(dbx) where
func1(var1= (...), var2 = 86, var3 = 0,var4 = 0)
, line 87 in "prog.f"
main(),... (1 Reply)
Discussion started by: S.P.Prasad
1 Replies
3. Solaris
Hi All,
I've been using Linux for past 2yrs for professional dev.
Im well-off with gnu gdb.
I am a C++ developer.
Now that i use solaris, I need help on DBX.
Regards,
Sumanth (1 Reply)
Discussion started by: Sumanth
1 Replies
4. Programming
I have a problem whith dbx: there is no dbx installed!!!
Could someone tell me where do i get dbx program and how to install it?
Thanks. (1 Reply)
Discussion started by: calloc
1 Replies
5. AIX
Hi ..
I have a core_dump in the server... AIX 5.3 . It was created by on proc executable called "ProcessIse" . from the log report i found the source file name
"ProcessIseInterface.C" which created the core file.
the core file name is : "core" under /iprs/bin directory.
can you help me... (1 Reply)
Discussion started by: vparunkumar
1 Replies
6. UNIX for Advanced & Expert Users
Hi ..
I have a core_dump in the server... AIX 5.3 . It was created by on proc executable called "ProcessIse" . from the log report i found the source file name
"ProcessIseInterface.C" which created the core file.
the core file name is : "core" under /iprs/bin directory.
can you help me... (1 Reply)
Discussion started by: vparunkumar
1 Replies
7. Programming
hi i have executable(eg test) of my application
that has the following syntax to run
test -Ddatabase_name Inputfile
Now i want to debug it using dbx
so i do
dbx test
(dbx) stop at /abc/test/test.c:90
stop at /abc/test/test.c:90
^ syntax error
the... (0 Replies)
Discussion started by: mad_man12
0 Replies
8. Shell Programming and Scripting
Hi,
I ahd created my executable file from makefile on AIX.
Now I want to debug my code using dbx.
I typed:
dbx help
It goes into (dbx) prompt
But afte that i do not know what to do to put breakpoints in my program and how to run step by step.
Help me out ASAP.
Thanks in... (0 Replies)
Discussion started by: Poonamol
0 Replies
9. Programming
I have tried lots of stuff but i can't get it working, i have also found a Thread in this Forum about it but it didn't describe how the program has to be run ect.
My issue is that i want to run a program with multiple arguments eg.
./myprog arg1 arg2 arg3 arg4 arg5
with dbx, but i cant get... (8 Replies)
Discussion started by: alcatros
8 Replies
10. Programming
Hey everyone,
I'm trying to attach to a process that is crashing so I can debug the source code. I've tried this:
dbx -a PID
stop at "file.cpp":line#
However, nothing ever breaks. The service crashes and restarts, but I never see it hitting the code. I've tried to use a core file, but... (2 Replies)
Discussion started by: ctote
2 Replies
LEARN ABOUT REDHAT
perlos400
PERLOS400(1) Perl Programmers Reference Guide PERLOS400(1)
NAME
README.os400 - Perl version 5 on OS/400
DESCRIPTION
This document describes various features of IBM's OS/400 operating system that will affect how Perl version 5 (hereafter just Perl) is com-
piled and/or runs.
By far the easiest way to build Perl for OS/400 is to use the PASE (Portable Application Solutions Environment), for more information see
http://www.iseries.ibm.com/developer/factory/pase/index.html This environment allows one to use AIX APIs while programming, and it provides
a runtime that allows AIX binaries to execute directly on the PowerPC iSeries.
Compiling Perl for OS/400 PASE
The recommended way to build Perl for the OS/400 PASE is to build the Perl 5 source code (release 5.8.1 or later) under AIX.
The trick is to give a special parameter to the Configure shell script when running it on AIX:
sh Configure -DPASE ...
The default installation directory of Perl under PASE is /QOpenSys/perl. This can be modified if needed with Configure parameter -Dpre-
fix=/some/dir.
Starting from OS/400 V5R2 the IBM Visual Age compiler is supported on OS/400 PASE, so it is possible to build Perl natively on OS/400. The
easier way, however, is to compile in AIX, as just described.
If building natively on PASE, please do the build under the /QOpenSys directory, since Perl is happier when built on a case sensitive
filesystem.
Installing Perl in OS/400 PASE
If you are compiling on AIX, simply do a "make install" on the AIX box. Once the install finishes, tar up the /QOpenSys/perl directory.
Transfer the tarball to the OS/400 using FTP with the following commands:
> binary
> site namefmt 1
> put perl.tar /QOpenSys
Once you have it on, simply bring up a PASE shell and extract the tarball.
If you are compiling in PASE, then "make install" is the only thing you will need to do.
The default path for perl binary is /QOpenSys/perl/bin/perl. You'll want to symlink /QOpenSys/usr/bin/perl to this file so you don't have
to modify your path.
Using Perl in OS/400 PASE
Perl in PASE may be used in the same manner as you would use Perl on AIX.
Scripts starting with #!/usr/bin/perl should work if you have /QOpenSys/usr/bin/perl symlinked to your perl binary. This will not work if
you've done a setuid/setgid or have environment variable PASE_EXEC_QOPENSYS="N". If you have V5R1, you'll need to get the latest PTFs to
have this feature. Scripts starting with #!/QOpenSys/perl/bin/perl should always work.
Known Problems
When compiling in PASE, there is no "oslevel" command. Therefore, you may want to create a script called "oslevel" that echoes the level
of AIX that your version of PASE runtime supports. If you're unsure, consult your documentation or use "4.3.3.0".
If you have test cases that fail, check for the existence of spool files. The test case may be trying to use a syscall that is not imple-
mented in PASE. To avoid the SIGILL, try setting the PASE_SYSCALL_NOSIGILL environment variable or have a handler for the SIGILL. If you
can compile programs for PASE, run the config script and edit config.sh when it gives you the option. If you want to remove fchdir(),
which isn't implement in V5R1, simply change the line that says:
d_fchdir='define'
to
d_fchdir='undef'
and then compile Perl. The places where fchdir() is used have alternatives for systems that do not have fchdir() available.
Perl on ILE
There exists a port of Perl to the ILE environment. This port, however, is based quite an old release of Perl, Perl 5.00502 (August 1998).
(As of July 2002 the latest release of Perl is 5.8.0, and even 5.6.1 has been out since April 2001.) If you need to run Perl on ILE,
though, you may need this older port: http://www.cpan.org/ports/#os400 Note that any Perl release later than 5.00502 has not been ported to
ILE.
If you need to use Perl in the ILE environment, you may want to consider using Qp2RunPase() to call the PASE version of Perl.
AUTHORS
Jarkko Hietaniemi <jhi@iki.fi> Bryan Logan <bryanlog@us.ibm.com> David Larson <larson1@us.ibm.com>
perl v5.8.0 2003-02-18 PERLOS400(1)