Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > a

Aries(5)

Itanium Processor Family Only
HP-UX 11i Version 1.6: June 2002
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

Aries — emulate PA-RISC applications on Itanium Processor Family (IPF)

DESCRIPTION

Aries is a binary emulator that transparently emulates 32-bit and 64-bit HP-UX PA-RISC applications on HP-UX IPF machines. Aries is transparent in that:

  • The HP-UX PA-RISC application is not re-compiled.

  • The user does not explicitly invoke Aries.

The HP-UX IPF kernel recognizes a HP-UX PA-RISC executable and invokes Aries to emulate the application.

Aries consists of 4 shared libraries :

/usr/lib/hpux32/aries32.so

/usr/lib/hpux32/pa_boot32.so

/usr/lib/hpux64/aries64.so

/usr/lib/hpux64/pa_boot64.so

aries32.so is the shared library that contains the Aries emulator for 32-bit applications. pa_boot32.so contains code to load aries32.so. Likewise, aries64.so is the emulator for 64-bit applications. pa_boot64.so loads aries64.so. Upon detecting a 32-bit HP-UX PA-RISC executable, the HP-UX IPF kernel invokes pa_boot32.so, which loads aries32.so into memory and sets it up to emulate the HP-UX PA-RISC executable. Likewise, aries64.so is loaded for a 64-bit HP-UX PA-RISC executable.

Supported Applications

Aries supports emulation of all HP-UX PA-RISC applications, with the following limitations:

  • Aries does not support PA programs that load IPF shared libraries. In other words, mixing PA binaries with IPF shared libraries is not supported. Aries is meant only for pure PA binaries — that is, binaries that are either statically or dynamically linked with PA libraries only.

  • The version of Aries that ships with HP-UX 11i Version 1.6 (software revision 11.22) supports HP-UX PA-RISC applications that run on HP-UX 11i and below. Aries does not support applications compiled on HP-UX version 8.x or earlier. However such applications should work fine if they run on a contemporary version of HP-UX (that is, HP-UX 11i and earlier).

  • Aries does not support privileged PA-RISC instructions. Hence, device drivers and loadable kernel modules are not supported.

  • Aries does not support timing-dependent applications. This includes applications that expect ``real-time'' response or assume that there is a consistency in the amount of time that it takes to execute a particular sequence of instructions.

  • Aries does not support applications that use the ptrace() or profil() system calls. These system calls are used by debuggers and profiling tools. Such tools are inherently not portable. See section PA GDB SUPPORT for additional information on support for PA gdb.

  • Aries consumes a small amount of an application's virtual memory address space. Therefore Aries does not support applications that are nearly or completely maxed out on their virtual address space usage.

  • Aries supports both the fork(), and vfork() system calls. However, Aries does not support applications that rely on differences between fork() and vfork(). See vfork(2) and fork(2) for details.

PA GDB Support

Aries supports debugging of PA applications on HP-UX IPF, using PA gdb.

On HP-UX IPF /usr/ccs/bin contains the PA gdb32 and gdb64 binaries. A symbolic link named /usr/ccs/bin/gdbpa points to /usr/ccs/bin/gdb32. The HP-UX/IPF gdb recognizes the binary being debugged as a PA binary and launches /usr/ccs/bin/gdbpa under Aries.

Debugging PA Applications on IPF

The following steps have to be followed by the user in order to debug PA applications on HP-UX IPF using PA gdb.

1.

Set the environment variable PA_DEBUG to 1.

2.

Set the environment variable SHELL to point to a PA shell, which should be present on the IPF machine on which debugging is being carried out. PA shell can be obtained from a HP-UX PA-RISC machine from /usr/bin.

3.

Add /usr/ccs/bin to the PATH environment variable.

4.

Run gdb as:

$ gdb PA_binary

The rest of the debugging process is exactly similar to that followed on the HP-UX PA-RISC platform. All commands of gdb are supported subject to limitations listed under Limitations of PA GDB Support.

After debugging is finished, perform the following steps.

1.

Unset the environment variable PA_DEBUG.

2.

Restore the original value of the SHELL environment variable.

Limitations of PA GDB Support

The following are current limitations of PA gdb support.

1.

No support for debuggers other than HP-UX PA-RISC gdb.

2.

No support for attaching the debugger to a running program.

3.

No support for conditional reporting of system call entry and exit events.

4.

No support for the WDB gui. Only command line interface and the -tui option are currently supported.

5.

No support for old gdb versions (of HP-UX 10.20 and earlier). However, debugging HP-UX 10.20 applications using a HP-UX 11.0 PA gdb is supported.

6.

PA gdb behaves differently for child programs created using fork() and vfork(). In Aries because vfork() calls made by application are replaced by fork() calls, the exact behaviour shown by PA gdb on the PA-RISC/HP-UX platform is not shown by the PA gdb running under Aries on the IPF/HP-UX platform in this case.

Generation of PA Core File

Aries supports creation of PA core file on IPF, when the emulated PA application dumps core.

The size of the core file is limited by ulimit() or setrlimit() values. See ulimit(2) and setrlimit(2).

The PA application core file generated by Aries will have the name as core.PA_application_name.

HP-UX PA-RISC debuggers are needed to analyze core files generated by Aries for PA applications. For instance, PA application core file generated by Aries can be debugged using /usr/ccs/bin/gdbpa on IPF. Alternately, the application's core file can be taken to a PA machine and debugged using a PA debugger. However, it is a very tedious process and likely to be error-prone.

After Aries has successfully written core file for PA application, it will print the following message on stderr:

ARIES32/64: Core file for PA32/64 application saved to path/core.PA_application_name

If the emulated PA application results in a core file named just core or core.pid, it will be Aries core dump and not that of the emulated PA application.

Debugging Aries-Generated PA Core File on a Different Machine (PA or IPF)

This can be done only with PA wdb-3.0.01 or later.

The following steps should be followed to debug Aries-generated PA core file on a machine other than the one on which the core file was generated.

1.

Transfer the core file and all the shared libraries used by the PA application from the IPF machine where core dump file was generated to the target machine.

2.

Set the GDB_SHLIB_PATH environment variables to a colon-separated list of directory pathnames where the transferred shared libraries reside.

3.

Run gdb as:

$ gdb PA_application PA_core_file

SEE ALSO

gdb(1), setrlimit(2), signal(2), ulimit(2), core(4).

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2002 Hewlett-Packard Development Company, L.P.