Sponsored Content
Operating Systems HP-UX Program crashes with optimization level O2 Post 302131799 by porter on Monday 13th of August 2007 07:00:30 PM
Old 08-13-2007
Quote:
Originally Posted by Yuriy07
Also, I see that local variables are shown incorrecly when program is built with +O2 optimization switch. They show correcly with +O0 or +O1 optimization.
Often optimizations are incompatible with debuggers because optimizers will re-organize variables on the stack for efficiency, um, basically optimizing the thing.

Optimizers are more aggressive and less forgiving of dodgy code.

Also, if you are using C++ libraries, have these been built with the same optimizations?


Use maximum warning and errors during compilation, for HPUX compilers I use "-Aa -D_HPUX_SOURCE +e +We".

Try GCC and see if that exposes anything, again use "-Wall -Werror".
 

9 More Discussions You Might Find Interesting

1. Programming

AIX 5.3 64-bit program crashes with AIX 5.1

I have an AIX 64-bit program which uses following from AIX5.3 /usr/lib/libc.a(shr_64.o) /usr/lib/libpthread.a(shr_xpg5_64.o) /home/jeet_xp/export/power/usr/lib/libsarpc.a(shr.o) /unix /usr/lib/libcrypt.a(shr_64.o) /usr/lib/libc_r.a(shr_64.o) ... (3 Replies)
Discussion started by: jeet_xp
3 Replies

2. UNIX for Advanced & Expert Users

Which Base Level Filesets needed by a specific program?

hello... thats a great forum btw :) my problem is that I need a list of the Base Level Filesets (BLF) which are needed by a specific program. Is there any command/tool which shows me that? during the installation I can choose "Preview only" so that I can see what BLF´s are missing etc but... (4 Replies)
Discussion started by: cypher82
4 Replies

3. UNIX for Dummies Questions & Answers

Text book / online resource for learning to program at system/kernel level

Is there any book/resource that one can refer to, to be able to write programs at kernel/system level.. I'm looking for a programming book that could serve as a guide to write kernel codes / system level programming etc.. I have Tannenbaum's Design and Implementation. It addresses theoretical... (2 Replies)
Discussion started by: vishwamitra
2 Replies

4. Solaris

Difference between run level & init level

what are the major Difference Between run level & init level (2 Replies)
Discussion started by: rajaramrnb
2 Replies

5. Programming

C++ program crashes

Hi, Could anyone tell me the reason why the following program crashes? class A { int x; public: A() { cout << "from A()" << endl; } ~A() { cout << "from ~A()" << endl; } }; class B : public A { public: B() { cout << "from B()"... (2 Replies)
Discussion started by: royalibrahim
2 Replies

6. Programming

Program crashes on calling __libc_msgrcv()

Hi, I am a newbie to linux programming. I have implemented msgqueue in C. msgrcv() call at the client end is as below: msgrcv( msgqid, msgptr, msgsize, msgtype, 0 ); My program works fine when msgrcv () from /lib/libc.so.6 is called. However it crashes when __libc_msgrcv() is called. ... (3 Replies)
Discussion started by: praasanna
3 Replies

7. Programming

C++ program crashes

Hi, Can anyone tell me why the below program is crashing? and where exactly it is crashing. What is the corrective measure to be taken to make it work fine? #include <iostream> #include <cstring> using namespace std; class CString { char* m_data; public: CString() :... (6 Replies)
Discussion started by: royalibrahim
6 Replies

8. Red Hat

SSL certificate generation on OS level or application level

We have a RHEL 5.8 server at the production level and we have a Java application on this server. I know of the SSL certificate generation at the OS (RHEL) level but it is implemented on the Java application by our development team using the Java keytool. My doubt is that is the SSL generation can... (3 Replies)
Discussion started by: RHCE
3 Replies

9. UNIX and Linux Applications

Apcupsd crashes

I am trying to run apcupsd, but it will not retain contact the UPS root@meow:/home/ethan/UPS/gapcmon-0.8.9# /etc/init.d/apcupsd start Starting UPS power management: A copy of the daemon is still running. If you just stopped it, please wait about 5 seconds for it to shut down.... (0 Replies)
Discussion started by: Meow613
0 Replies
spike(1)						      General Commands Manual							  spike(1)

NAME
spike - Performs code optimization after linking a program SYNOPSIS
spike binary_file [options...] OPTIONS
Names the optimized binary output file. The default file name is a.out. Causes spike to use the feedback database stored in file, where file is the name of the input executable. This database is created by first compiling the program with the -feedback option (for example, cc -feedback prog) and then instrumenting and running the program with the pixie -update or prof -pixie -update command (see cc(1), pixie(1), and prof(1)). Causes spike to use file.Addrs (basic block addresses file) and file.Counts (basic block counts file) for profile- based optimization. These files are produced by the pixie tool (see pixie(1) and prof(1)). spike can be applied only to V5.1 or later kernels. Use this option when applying spike to the UNIX kernel (vmunix). Disables code layout optimization that splits procedures into multiple parts. Disables basic block chaining, which arranges code so that the fall through path is the commonly taken path. Disables procedure ordering. Reduces the number of padding nops inserted into the code to align instructions. The alignment usually makes the code run faster, but makes the code larger, which can cause more instruction cache misses. Adjusts the threshold used by procedure splitting in code layout to decide which code is frequently and infrequently executed. The default is that make up at least 99 percent of the estimated execution time are considered frequently executed and the rest are marked as infrequently executed. Increasing the threshold can help when the profile is not representative. For example, try a value of Displays the version number of spike. OPERANDS
Name of the binary file to which spike is to be applied. DESCRIPTION
spike is a tool for performing code optimization after linking. It is a replacement for om and does similar optimizations. Because it can operate on an entire program, spike is able to do optimizations that cannot be done by the compiler. Some of the optimizations that spike performs are code layout, deleting unreachable code, and optimization of address computations. spike is most effective when it uses profile information to guide optimization. spike can process binaries linked on Tru64 UNIX (formerly Digital UNIX) Version 4.0 or later systems. Binaries that are linked on Version 5.1 or later systems contain information that allows spike to do additional optimization. You can use spike in two ways: By applying the spike command to a binary file after compilation. As part of the compilation process, by specifying the -spike option with the cc command (or the cxx, f77, or f90 command, if the associated compiler is installed). The -spike option is more convenient when you are not using profile information (Example 2), or you are using profile information in the compiler, too (Example 3). The spike command is more convenient if you do not want to relink the executable (Example 1) or you are using profile information after compilation (Examples 4 and 5). All spike command options can be passed directly to the cc command's -spike option by using the (cc) -WS option. Example 6 shows the syn- tax. RESTRICTIONS
spike cannot process images that have been stripped. contain RPDR tables (see Section 2.3.7, Special Symbols, of the Object File/Symbol Table Format Specification) compute an offset from a code address. modify the text section at runtime. Using cord, atom, pixie, hiprof, or third on an image that has been processed with spike is unsupported. NOTES
spike tries to update the symbol table in the binary so that the optimized binary can be debugged. As with other compiler optimizations, there may be some situations where the debugger may not be able to properly report the current location in the program or display the val- ues of variables. If spike divides a procedure into multiple disjoint parts, the main body will keep the original procedure name, but the other parts will have names that are the original name with _cold_n (where n is a number) appended to the end. EXAMPLES
In the following example, spike is applied to the binary my_prog, producing the optimized output file prog1.opt. % spike my_prog -o prog1.opt In the following example, spike is applied during compilation with the cc command's -spike option: % cc -c file1.c % cc -o prog3 file1.o -spike The first command line creates the object file file1.o. The second command line links file1.o into an executable and uses spike to optimize the executable. The following example shows how to optimize a program, prog, by first compiling it with the -feedback option, then merging profiling statistics from two instrumented runs of the program, then compiling it with the -spike and -feedback options so the feedback information stored in the executable is used by the compiler and spike: % cc -feedback prog -o prog *.c % pixie -pids prog % prog.pixie (input set 1) % prog.pixie (input set 2) % prof -pixie -update prog prog.Counts.* % cc -spike -feed- back prog -o prog *.c The first compilation produces an augmented executable that will later accept feedback information. The pixie command creates an instrumented program (prog.pixie), which is then run twice. The -pids option adds the process ID of each test run to the name of the profiling data file produced -- for example prog.Counts.371 and prog.Counts.422. The prof -pixie command merges the two data files. The -update option updates the executable, prog, with the combined information. The program is compiled with the -spike and -feedback options so the feedback information stored in the executable is used by the compiler and spike. The following example shows how to optimize a program, prog, by first compiling it with the -feedback option, then merging profiling statistics from two instrumented runs of the program, then applying the spike -feedback command to use the feedback information stored in the executable: % cc -feedback prog -o prog *.c % pixie -pids prog % prog.pixie (input set 1) % prog.pixie (input set 2) % prof -pixie -update prog prog.Counts.* % spike prog -feedback prog -o prog.opt As in the previous example, the first compilation produces an augmented executable. The instrumented program is run twice, producing a uniquely named data file each time. The prof -pixie -update command merges the two data files and updates the executable with the combined information. The spike -feedback command uses the combined profiling information to produce the optimized output file prog.opt. The following example shows how to optimize a program, prog, by merging profiling statistics from two instrumented runs of the program, then applying the spike -fb command to use the feedback information in the and files: % cc prog -o prog *.c % pixie -pids prog % prog.pixie (input set 1) % prog.pixie (input set 2) % prof -pixie -merge prog.Counts prog prog.Addrs prog.Counts.* % spike prog -fb prog -o prog.opt The first compilation produces a normal executable. As in the previous example, the instrumented program is run twice, producing a uniquely named data file each time. The prof -pixie -merge command merges the two data files into one combined prog.Counts file. The spike -fb command uses the information in prog.Addrs and prog.Counts to produce the optimized output file prog.opt. The method in Example 4 is preferred. You should use the method in Example 5 only if you cannot compile with the -feedback option that uses feedback information stored in the executable. The following example shows the syntax for passing spike command options to the (cc) -spike option by using the (cc) -WS option: % cc -spike -feedback prog -o prog *.c -WS,-splitThresh,.999,-noaggressiveAlign RETURN STATUS
spike returns the following status values: 0: Success Nonzero: Error SEE ALSO
cc(1), pixie(1), prof(1) Programmer's Guide spike(1)
All times are GMT -4. The time now is 03:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy