Patch Name: PHSS_17537 Patch Description: s700_800 11.00 Cumulative patch to DDE v4.21 (DDE 4.21.P4) Creation Date: 99/02/08 Post Date: 99/03/09 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: DDE v4.21 Filesets: DDE.DDE,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: Yes PHSS_17537: CORRUPTION Category Tags: defect_repair general_release critical corruption Path Name: /hp-ux_patches/s700_800/11.X/PHSS_17537 Symptoms: PHSS_17537: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_17537: Note: some of these lines were wrapped to fit into a (required) 60 column format. 1) DDE 4.21 gives wrong result if assigning a value to a 'bit' variable. 2) DDE can't print struct if struct is the same name as srcfile. 3) dde> ?(dde/ui_line) Input error - Resources temporarily unavailable. PHSS_17068: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_17068: Note: some of these lines were wrapped to fit into a (required) 60 column format. 1) dde hangs when passing in "arg " 2) dde gives misleading error message for unsupported pointer assignment in f90. 3) On HP-UX 11.0,DDE fails to recognize an executable that is of type SHMEM_MAGIC. 4) Intercepting aCC shl_load on 11.x shows only __shlinit on stack. 5) float to char conversion is flakey 6) "Unable to demangle name" message from aCC generated file. 7) Printing range of integers fails with pascal manager 8) DDE gets SIGSEGV with aCC target compiled with full pathnames 9) Pascal Languge mgr call command cannot pass user variables by value. 10)DDE cannot correctly make assignment of FLOATS when NLS is inabled. 11)DDE: syntax error on nested template: bre List >::copy 12)DDE can't print a class in main if class debug info in shared lib. PHSS_16044: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_16044: Note: some of these lines were wrapped to fit into a (required) 60 column format. 1) describe -loc block_name -va broken 2) Cannot interrupt DDE if waiting for certain events 3) "Step" does "Step over"; "Step over" does "Continue" 4) DDE has incorrect instruction disassembler. 5) DDE truncates space reg values to low 16 bits 6) DDE fails with long mangled cfront names (~1200 characters). 7) DEBUG-PC-RANGE fails in main program -- cannot show dasm 8) DDE 4.21 can't read stack trace earlier than signal handler 9) DDE "kill" then "debug" can fail to recognize kernel threads 10) DDE "call" command gives wrong result for float and double return values 11) ROSE: int load doesn't work with step -return 12) DDE 4.21 does not display full traceback from aCC core, exception handl 13) Single Step interupted by signal.. Defect Description: PHSS_17537: 1) DDE gives wrong result for assigning a value to a bit variable, the problem occurs when dde - print command is used to assign a value to a variable , here it is shown with the following example . Having one simple example code say as test.c : #include #include #include "test_h1.h" main( int argc, char **argv ) { SimPcSettei recdata; memset(&recdata, 0, sizeof(SimPcSettei)); return; } And the corresponding header file test_h1.h as : typedef struct HDF_SA_UA_ { unsigned short SA:9, UA:7; } HDF_SA_UA; typedef struct SimPcSet_Bdy_St { HDF_SA_UA saua; unsigned short blk_cnt1; HDF_SA_UA bef_saua; } SimPcSettei; Now compiling the code cc -g -o test test.c load the executable #dde -ui line (Warning) Commands dealing with key definitions are not supported in line mode. dde> debug test Executing image in process 10967: "/.../.../test". Break at: \\test\main\12 Source File: /.../.../test.c 12 B > memset(&recdata, 0, sizeof(SimPcSettei)); dde> giving print recdata dde> print recdata \\test\main\recdata: (record) \\test\main\recdata.saua: (record) \\test\main\recdata.saua.SA: 0 \\test\main\recdata.saua.UA: 0 \\test\main\recdata.blk_cnt1: 0 \\test\main\recdata.bef_saua: (record) \\test\main\recdata.bef_saua.SA: 0 \\test\main\recdata.bef_saua.UA: 0 Now trying to set say recdata.saua.SA=1 using dde> pri recdata.saua.SA=1 3 dde> It gives wrong result. also trying dde> print recdata \\test\main\recdata: (record) \\test\main\recdata.saua: (record) \\test\main\recdata.saua.SA: 3 \\test\main\recdata.saua.UA: 0 \\test\main\recdata.blk_cnt1: 0 \\test\main\recdata.bef_saua: (record) \\test\main\recdata.bef_saua.SA: 0 \\test\main\recdata.bef_saua.UA: 0 DDE shows the same wrong value to the variable. 2) DDE can't print a struct if struct is same name as srcfile also DDE can't print variable with the same name as struct in C++. Here is the example code : myst.c struct myst { int inmyst; }; struct myst myst; int main() { myst.inmyst = 214; myst.inmyst = 342; } Now creating three executables with : cc -g myst.c -o a.cc.out CC -g myst.c -o a.CC.out aCC -g myst.c -o a.aCC.out Now when debugging # dde -ui line a.cc.out we get the expected result dde> debug a.cc.out Executing image in process 3759: "~/a.cc.out". Break at: \\c\main\4, 3 Source File: ~/myst.c 4 B > myst.inmyst = 214; dde> print myst \\myst: (record) \\myst.inmyst: 0 But, when degugging a.CC.out or a.aCC.out, you only get: dde> free; debug a.CC.out Executing image in process 3807: "~/a.CC.out". Break at: \\c\main\4 Source File: ~/myst.c 4 B > myst.inmyst = 214; dde> print myst myst: (record) Here if the name of the type is changed , both the type and the variable can be printed; $ more more myst2.c struct myst2 { int inmyst; }; struct myst2 myst; int main() { myst.inmyst = 214; myst.inmyst = 342; } $ CC -g myst2.c -o a.CC.out2 $ dde -ui line a.CC.out2 dde> pri myst2 myst2: (record) dde> pri myst myst: (record) myst.inmyst: 0 dde> pri (myst2) myst (record): (record) . inmyst: 0 3) DDE ui_line gives : dde> ?(dde/ui_line) Input error - Resource temporarily unavailable in some cases, and it is getting killed thereafter. Here is the sample test case : io_nonblock.c #include #include #include #include int main () { int flags; fd_set rfds, exfds; char c; flags = fcntl (fileno (stdin), F_GETFL); /* Set stdin to non-blocking, note not non-delay. */ flags |= O_NONBLOCK; if (fcntl (fileno (stdin), F_SETFL, flags) == -1) { printf ("Failed to set flags: 0x%x\n", flags); return 0; } for (;;) { FD_ZERO (&rfds); FD_ZERO (&exfds); FD_SET (fileno (stdin), &rfds); FD_SET (fileno (stdin), &exfds); if (select (8, &rfds, NULL, &exfds, NULL) == -1) { printf ("select call failed\n"); return 0; } if (FD_ISSET (fileno (stdin), &exfds)) { printf ("stdin exception occured\n"); return 0; } if (read (fileno (stdin), &c, 1) != 1) { printf ("read failed\n"); return 0; } putchar (c); if (c == 'q') { printf ("\nRead q, quitting\n"); break; } fflush (stdout); } return 0; } Now having DDE debug the given target program in line mode , do a "go" type "q" and then hit enter key and DDE fails , $ cc -g io_nonblock.c $ dde -ui line a.out Executing image in process 3019: "/home/janm/A5467620/a.out". Break at: \\io_nonblock\main\12 Source File: /home/janm/A5467620/io_nonblock.c 12 B > flags = fcntl (fileno (stdin), F_GETFL); dde> go q q Read q, quitting Break at: \\io_nonblock\main\51 51 B > } dde> dde> ?(dde/ui_line) Input error - Resource temporarily unavailable. $ dde -ui line -ver dde, version 4.21.P3 This problem is only with line-mode UI . Resolution: 1) Here the problem reported was happening because DDE was not doing the bit copy correctly , for setting a structure's field member which happens to be a bit field DDE was using this erroneous bit copy code and hence we were getting the wrong results. That bit copy code was corrected to fix the problem. 2) In cases where struct is same name as the variable or struct is same name as the srcfile , DDE can't print the struct, this was happening only for C++ and aCC , all this was happening since DDE was not doing the symbol lookup correctly for C++ and aCC in this given case , what DDE was doing in this case was looking up types first instead of names and hence it was failing; that lookup was corrected to solve this problem. 3) In this case with the line -mode UI, DDE was not saving some of the terminal attributes and it was not able to restore the file control flags when target returns control to DDE, this was causing the problem discussed with the given example. This was resolved by enabling DDE - line mode UI to save and restore the terminal attributes as needed. PHSS_17068: The following defect descriptions are for PHSS_17068 Note: some of these lines were wrapped to fit into a (required) 60 column format. This will make some message text look different from how it appears to the user. 1) dde is hanging while trying to load any executable with command line arguments within quotes. The problem is here shown with small example code. #include main(int argc, char **argv) { printf("hello there\n"); printf("prog name %s\n",*argv); printf("1st argument %s\n",argv[1]); } Compile the code. cc -Aa -g test.c start the debugger. dde File pull down menu to load executable. In load rerun/menu window ; specify "hello there" as argument , dde loops in loading the executable forever and there is no way to come out of it except using interrupt. 2) dde gives a misleading error message , for unsupported pointer assignment in FORTRAN 90. compiling the following piece of code using f90 compiler; real, pointer :: a real, target :: b real, target :: c a => b b = 1.0 c = 2.0 end Now loading the executable and giving the following set command dde> set a=>c dde gives a message: ?(dde/lang_ftn) Incompatible types for assignment. which is not correct in this context. 3) compiling any program for SHMEM_MAGIC $ cc -g -Wl, -N ~/test.c -o test $ chatr -M test new values: normal SHMEM_MAGIC executable shared library dynamic path search: SHLIB_PATH disabled second embedded path disabled first Not Defined shared library list: dynamic /usr/lib/libc.2 shared library binding: deferred now loading this executable into dde $ dde -ui line ~/test we get: ?(dbgk_hpux_pa) File '/net/mantis/home/sunil/test' is is not of a known object file type. (Perhaps the file is a shell script?) dde fails to recognize the executable , which is in SHMEM_MAGIC form. 4) When a shared library load event occurs in Ansi C++ code , no traceback is available.As the following example shows, the only thing visible on the stack, is __shlinit.We should provide the user with the complete actual stack. Even commands like "go -return" are unavailable because DDE can't figure out where it can return to. This is only a problem on HPUX 11.X. dde> go Intercepted event type 'load '. Library loaded by process 2758: "/tmp_mnt/net/yz/u2\ /dschmitz/tmp/alib.sl". Stopped at: __shlinit (hpux_export stub)+00a8 (7ADDEAD8) dde> tb `main: Stopped at: __shlinit (hpux_export stub)+00a8 (7ADDEAD8) 5) DDE behaves inconsistently for float to char type casting.Supposing that we have a variable "var" in a program and has been defined as a float type; Now trying to print "var" with char type casting, dde gives differnt values from one run to another. dde > print (char)var '\310' #this output is an example after restart and go for the executable dde > restart dde > go and again trying to print "var" with char type casting dde > print (char)var '4' #this output is an example. Here we should be getting the same value for "var" rather than different values , as the case is when we print it.This suggests that the final char value for the variable "var" is non-deterministic. 6) Unable to demangle name message from aCC generated file Problem : DDE is printing the following message "unable to demangle function" in the case when it is not able to do that. It is not possible to determine which function name is giving the problem since the string(failed to be demangled) is not printed by DDE. 7) Printing range of integers fails with pascal manager (set range). If you're using the pascal language manager, the command "print [1..10]" should, print [1,2,3,4,5,6,7,8,9,10] instead, it often spits out just [1]. The latest version of dde using the 4.21 configuration often spits out warning messages as well. mantis:/net/mantis/home/bshaji/aCCbug>dde -ui line (Warning) Commands dealing with key definitions are not supported in line mode. dde> version dde, version 4.03 User interface manager ui_line: Line-Mode UI, version 4.03 dde>debug t05 Executing image in process 14483: "/home/bshaji/t05". Break at: \\test\169 Source File: /home/bshaji/t05.p 169 B > init_data; dde> print [1..10] [1] dde> 8) DDE gets SIGSEGV with aCC target compiled with full pathnames. When debugging a certain file, DDE complains about an internal error and also gets a SIGSEGV.The C++ team claims that the file has bad debug info. Even so, DDE should not act so badly in such situation. DDE may complain about bad input or produce bad output as a result, but DDE may not simply fault over this. Apparently, any C++ program, compiled using fully qualified source paths, with aCC version A.03.10 will cause DDE to exhibit this problem. For example: The source was compiled like so: aCC +DAportable -g0 -c `pwd`/main.cc -o main.o aCC +DAportable -g0 -o testbin main.o doa:/net/mantis/home/bshaji/aCCbug>dde -ui line (Warning) Commands dealing with key definitions are not supported in line mode. dde> version dde, version 4.21.P2 User interface manager ui_line: Line-Mode UI, version 4.21.P2 dde> debug testbin Executing image in process 28685: "/tmp_mnt/net/mantis\ /home/bshaji/aCCbug/testbin" ?(dde) Unexpected error in sym package. (Warning) Pending commands discarded. ?(dde) Unexpected error occurred: SIGSEGV (invalid memory access). (Warning) Continuing despite the error... Source File: /tmp_mnt/net/mantis/home/bshaji/aCCbug\ /main.cc 5 B > cout << "main" << endl; dde> 9) DDE does not print the correct value for programs in pascal when a function with parameters passed by value is called from command line. For example If the function int_val has the prototype, function int_val(i1:integer):integer and if you enter "print int_val(i1)" from command line (say i1=1997) then DDE does not print the correct value which is 1997. It does so if i1 is passed by reference. The work around is to use the lang -c option which breaks the DDE concept of language independent targets. The executable is built with pc and the problems have been experienced on both 10.20 and 11.00. 10)The problem is that fractional part of floating point values get dropped when international locals are enabled which use a character other than "." (period) as the radix seperation character. The cause is a bug in DDE, in that it didn't take into account the affect that locale changes have on it's internal value conversion operations. It is a side effect of how locales are implemented. Specifically, sscanf changes it numeric behavior in international contexts that define the radix character to be a character other than "." (period). In the case of this bug this behavior by sscanf is not desired, but also not controllable on a call by call basis. Locale control affects all printf and scanf invocations globally. 11)If template argument is of type 'template_name' DDE can't set breakpoint at a Single Class Template Member function Instance. For example, If we have the following declaration, template class Stuff {...}; template class List { : : public: insert(T) {...} : : }; and we try setting break points as follows from command line . dde> bre List >::insert Output: List ^syntax error in C expression Location "List " not found in current environment. 12)Here we tried to reproduce the problem with a sample code(example code not shown here). The problem is as given in symptoms list , is, it is not always possible to print a class static data member.This is due to lack of debug info in the current image.The debug info cannot always be provided due to ansi requirement. Trying to print : example: pri anyInstance' -> '(record) you get the same result for any variable you try to print. PHSS_16044: The following defect descriptions are for PHSS_16044 Note: some of these lines were wrapped to fit into a (required) 60 column format. This will make some message text look different from how it appears to the user. 1) describe -loc block_name -va doesn't produce any output: [rm]{t4}/test/src/xpa> dde -ui line dde> version dde, version 4.0.0.12 User interface manager ui_line: Line-Mode UI, version 4.0.12 dde> debug a.out Executing image in process 1602: "/test/src/xpa/a.out". Break at: \\t01\main\82 Source File: /test/src/xpa/t01.c 82 B > liv = 1; dde> describe -loc main -va dde> describe -loc main block "\\`image(a.out)\t01\main" kind of block: function attributes: entry point, executable, statement initialization done, main program language: lang_c file: "t01.c" (Thu May 9 14:46:26 1996) start line number: 63 end line number: 119 entry statements: 82 exit statements: 119 code ranges: [00002070-0000231F] image: name: /test/src/xpa/a.out system_id: PA-RISC 1.0 image is mapped WRITABLE - symbolic debug information available section[1]: $TEXT$ (0x1000-0x2ab5) section[2]: $DATA$ (0x40001008-0x40001107) statements: 35 symbols: 13 types: 2 dde> quit 2) DDE gets stuck in certain recursive calls to execute and wait. At that point, it is impossible for the user to interrupt with ^C. 3) When using DDE to single step through an application, calls to (in our case) getenv() with "Step over" do not step over the call, but act as though the "Continue" button was pushed. It has also been reported to me that "Step" occasionally performs a "Step over" when we intend to step into one of our own functions. We can work around both problems with breakpoints, but that is incredibly tedious. Our executable is built with aCC and the problems have been experienced on both 10.20 and 11.00. 4) The disassembly output from adb is incorrect. It points to four instructions with the wrong nmemonics. Since DDE uses the same code as adb for instruction disassembly dde has the same problem. It turns out there are many other instructions that are also incorrectly disassembled. The original complaint is that the follwoing are incorrectly disassembled. Correct Reported CMPB COMDB PERMH HMUX STDBY STDBYS EXTRD,u EXTRDU Note: On PA2.0 systems, DDE will display the PA2.0 form of the instruction. On PA1.x systems, DDE will display the 1.x form of the instructions as it did before. 5) DDE truncates target process space register contents read or written to the least significant 16 bits. The PA-RISC 2.0 Architecture book doesn't indicate that only 16 bits are significant. 6) DDE dies with a SEGV when loading the program "pd". XDB also dies with an internal panic. The program "pd" has some long mangled cfront template names > 1024 characters. We are on 10.20, CC version 10.28, dde version 4.02. The executable is not built debuggable but we want to be able to look at core files. When using the gui dde fails on 'dde core pd'. In line mode dde gets a SEGV but does report process aborted on thread TimerLoop. This is correct. When doing a stack trace (tb) the results do not look correct; there are references to symbols that do not appear in the nm of the executable. 7) Compile the program play.c (not included, too big) dde play show assembly instructions -- this will fail with a DEBUG-PC-RANGE error. Every return to the main program with the assembly window open will show this error. 8) DDE version: 4.21 OS:11.0 The trace back provided by DDE is incomplete. It can not read the stack trace before a signal handler. $ cat sample.c #include #include #include void sighandler(int sig) { fprintf(stderr, "sighandler() called. sig# = %d\n", sig); abort(); } void func_cause_sigbus(void) { int *ip; ip = (int *)0x00000001; *ip = 1; } void main(void) { struct sigaction new_sigact, old_sigact; new_sigact.sa_handler = sighandler; new_sigact.sa_flags = 0; (void)sigemptyset(&new_sigact.sa_mask); (void)sigaction(SIGBUS, &new_sigact, &old_sigact); func_cause_sigbus(); } $ cc -g sample.c -o sample /usr/ccs/bin/ld: (Warning) At least one PA 2.0 object file (sample.o) was detected. The linked output may not run on a PA 1.x system. $ ./sample sighandler() called. sig# = 10 ABORT instruction (core dumped) $ dde -ui line core sample Target process died because of: SIGABRT - IOT instruction. Executing image in process 4733: "/home/janm/A5280772/sample". Information about address 0000000000000030 is not available from core file. Information about address 0000000000000030 is not available from core file. Stopped at: \\kill (C00F25B8) dde> tb `main(8): Stopped at: \\kill (C00F25B8) `main(7): Called from: \\_raise (C0092F60) `main(6): Called from: \\abort (C006A288) `main(5): Called from: abort (hpux_export stub)+0018 (C006A0A8) `main(4): Called from: \\sample\sighandler\9 (000031A8) `main(3): Called from: \\_exit # `va(C00F1258) `main(2): Called from: \\_sigreturn # `va(C00F12B8) `main: Called from: \\sample\func_cause_sigbus\17 (000031D0) dde> version dde, version 4.21 User interface manager ui_line: Line-Mode UI, version 4.21 Target manager tgt_hpux_pa: HP-UX PA-RISC, version 4.21 DBGK 4.21 Object manager obj_som_som: HP SOM, version 4.21 Language manager lang_c: ANSI C, version 4.21 Language manager lang_asm_pa: HP-UX PA-RISC assembler, version 4.21 A full trace back is provided by gdb: $ gdb sample core Hewlett-Packard Wildebeest 0.75.02 (based on GDB 4.16) (built for PA-RISC 1.1 or 2.0(narrow), HP-UX 11.00) warning: The shared libraries were not privately mapped; setting a breakpoint in a shared library will not work until you rerun the program Reading symbols from ./sample...done. Reading symbols from /usr/lib/libc.2...done. Reading symbols from /usr/lib/libdld.2...done. #0 0xc00f25b8 in _kill () from /usr/lib/libc.2 #0 0xc00f25b8 in _kill () from /usr/lib/libc.2 (gdb) bt #0 0xc00f25b8 in _kill () from /usr/lib/libc.2 #1 0xc0092f68 in _raise () from /usr/lib/libc.2 #2 0xc006a290 in abort () from /usr/lib/libc.2 #3 0x31b0 in sighandler (sig=10) at sample.c:9 #4 #5 0x31d0 in func_cause_sigbus () at sample.c:17 #6 0x3250 in main () at sample.c:31 9) DDE 4.20 can fail to recognize kernel threads if a debugging session is terminated, as with the "kill" or "free" commands, and a new session started without exiting DDE. This only happens if the new debugged process has the same PID as the old process. In this case DDE silently ignores a new kernel thread, and the target appears to be a single-threaded process. 10) DDE call command returns incorrect results with functions whose arguments are of type float/double if the called functions reside in a shared library. The incorrect results occur on DDE 4.02, DDE 4.21 and DDE 3.25A.P7 $ more main.c extern int ret_iarg(int); extern float ret_farg(float); extern double ret_darg(double); int main() { int i,j=4; float f,g=4.0; double d,e=4.0; i=ret_iarg(j); f=ret_farg(g); d=ret_darg(e); printf(" int %d\n", i); printf(" float %f\n", f); printf(" double %f\n", d); $ more rec debug a.out prop lib libret.sl bre -in main -exit go call ret_iarg(j) call ret_farg(g) call ret_darg(e) $ README # script that builds a.out # Then run dde and type " desc ret_darg symbol "\\`image(libret.sl)\ret_darg\ret_darg" type: datatype: entry parameters: symbol "\\`image(libret.sl)\ret_darg\ret_darg\a" type: "double" attributes: formal parameter, by value parameter position: 1 returns: type: "double" file: "ret_darg.c" (Thu Jul 16 09:24:09 1998) Rebuilding w/o shared libraries works: joebob: $ cc -Aa -g main.c ret*.c -o main2 $ dde -ui line main2 Executing image in process 27407: "/home/janm/A5289179/main2". Break at: \\main\main\7 Source File: /home/janm/A5289179/main.c 7 B > int i,j=4; xdde> go int 4 float 4.000000 double 4.000000 Break at: \\main\main\18 18 B > } xdde> call ret_iarg(j) Call completed with return value: 4 18 B > } Stopped at: \\main\main\18 xdde> call ret_farg(g) Call completed with return value: 4.0 18 B > } Stopped at: \\main\main\18 xdde> call ret_darg(e) Call completed with return value: 4.0 18 B > } Possibly related to 4701314252 CHFts17425: "call" command on C++ routines does not work correctly gdb seems to work okay: $ gdb a.out (gdb) bre 14 (gdb) r Starting program: /home/janm/A5289179/a.out Breakpoint 1, main () at main.c:15 15 printf(" int %d\n", i); (gdb) call ret_iarg(j) $1 = 4 (gdb) call ret_farg(g) $2 = 4 (gdb) call ret_darg(e) $3 = 4 11) If you do a step -return while in a routine that calls shl_load, you will not intercept the load. dde prop flags tgt_shlib_debug deb foobarbas go -unt 29 prop lib * int load step -return The load events are not captured. 12) There is a problem tracing C++ Exception handler present even in the latest dde version A.04.21.P1 provided to us in advance to test another traceback problem. Again gdb can show the handler's trace. Please fix this problem also. Below is the details showing the problem: $ cat sample.cc #include #include double devide(double d1, double d2) { if (d2 == 0.0) throw "devzero"; return d1 / d2; } void func_cause_exception(void) { try { double ret = devide(1.0, 0.0); cout << "ret = " << ret << "\n"; } catch (const char *type) { cerr << "Exception:" << type << "\n"; abort(); } } int main(int argc, char **argv) { func_cause_exception(); } $ aCC -g -o sample sample.cc /usr/ccs/bin/ld: (Warning) At least one PA 2.0 object file (sample.o) was detected. The linked output may not run on a PA 1.x system. $ ./sample Exception:devzero ABORT instruction (core dumped) bash@malpas:/home/hiro/tmp <1062> dde -ui line core sample Target process died because of: SIGABRT - IOT instruction. Executing image in process 24032: "/home/hiro/tmp/sample". Stopped at: \\kill (C00F25B8) dde> tb `main(6): Stopped at: \\kill (C00F25B8) `main(5): Called from: \\_raise (C0092F60) `main(4): Called from: \\abort (C006A288) `main(3): Called from: abort (hpux_export stub)+0018 (C006A0A8) `main(2): Called from: \\sample\func_cause_exception\ub.2\24 (00003504) `main: Called from: `va(0) (00000000) dde> quit $ gdb sample core Wildebeest is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for Wildebeest; type "show warranty" for details. Hewlett-Packard Wildebeest 0.75.02 (based on GDB 4.16) (built for PA-RISC 1.1 or 2.0(narrow), HP-UX 11.00) Copyright 1996, 1997 Free Software Foundation, Inc... Core was generated by `sample'. Program terminated with signal 6, Aborted. warning: The shared libraries were not privately mapped; setting a breakpoint in a shared library will not work until you rerun the program. Reading symbols from ./sample...done. Reading symbols from /usr/lib/libstd.2...done. Reading symbols from /usr/lib/libstream.2...done. Reading symbols from /usr/lib/libCsup.2...done. Reading symbols from /usr/lib/libm.2...done. Reading symbols from /usr/lib/libcl.2...done. #0 0xc00f25b8 in _kill () from /usr/lib/libc.2 #0 0xc00f25b8 in _kill () from /usr/lib/libc.2 (gdb) where #0 0xc00f25b8 in _kill () from /usr/lib/libc.2 #1 0xc0092f68 in _raise () from /usr/lib/libc.2 #2 0xc006a290 in abort () from /usr/lib/libc.2 #3 0x350c in func_cause_exception () at sample.cc:24 #4 0x33e4 in devide (d1=1, d2=0) at sample.cc:8 #5 0x3468 in func_cause_exception () at sample.cc:18 #6 0x3588 in main (argc=1, argv=0x680e73ac) at sample.cc:31 (gdb) quit 13) When hitting a breakpoint in a function. the step command may leave you in cma code if a signal is recieve by the process while the step command is being done. Set a breakpoint on a function. Start the debugger ( go) The program will stop on the right position. If you do a list stack, the stack is fine. If you do now a STEP, you go inside that function to the DCE call cma__sig_async. Now to return back to the user code, you have to to twice go -ret. customer who has reported this is Nokia Mobile Phones... Ted is aware of the problem. Has been duplicated with in inhouse NMP environment. SR: 1653268169 1653268995 1653271973 5003349894 1653240366 5003441329 5003370676 1653238931 1653243709 1653278069 1653288571 5003437483 4701411017 Patch Files: DDE.DDE,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP: /opt/langtools/bin/dde.bin /opt/langtools/bin/dde /opt/langtools/dde/ui/ddegui /opt/langtools/dde/mgrs/obj_elf_som /opt/langtools/dde/mgrs/obj_som_som /opt/langtools/dde/mgrs/tgt_hpux_pa /opt/langtools/dde/mgrs/dbgk32_hpux_pa /opt/langtools/dde/mgrs/dbgk64_hpux_pa /opt/langtools/dde/mgrs/ui_gui /opt/langtools/dde/mgrs/ui_line /opt/langtools/dde/mgrs/lang_ftn /opt/langtools/dde/mgrs/lang_asm_pa /opt/langtools/dde/mgrs/lang_c /opt/langtools/dde/mgrs/lang_c++ /opt/langtools/dde/mgrs/lang_pas_apollo /opt/langtools/dde/mgrs/lang_pas_hp /opt/langtools/dde/lib/nls/msg/C/lang_ftn.cat /opt/langtools/dde/lib/nls/msg/C/obj_mgr.cat /opt/langtools/dde/lib/nls/msg/C/dde.cat /opt/langtools/dde/lib/nls/msg/C/tgt_hpux_pa.cat what(1) Output: DDE.DDE,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP: /opt/langtools/bin/dde.bin: HP92453-02A.11.00 HP-UX SYMBOLIC DEBUGGER (END.O ILP 32) $Revision: 75.02 $ HP Distributed Debugging Environment (HP/DDE) - Vers ion 4.21.P4 Rev: 990218.095931 /opt/langtools/bin/dde: None /opt/langtools/dde/ui/ddegui: REV: 990202.161943, 9000/889 HP-UX B.10.20 sunil@hpc ll594 /opt/langtools/dde/mgrs/obj_elf_som: HP/DDE Object manager obj_elf_som: HP ELF - Version 4.21.P4(473) Rev: 990205.162913 /opt/langtools/dde/mgrs/obj_som_som: HP/DDE Object manager obj_som_som: HP SOM - Version 4.21.P4 Rev: 990205.162819 /opt/langtools/dde/mgrs/tgt_hpux_pa: HP/DDE Target manager tgt_hpux_pa: HP-UX PA-RISC - V ersion 4.21.P4 Rev: 990218.100450 /opt/langtools/dde/mgrs/dbgk32_hpux_pa: HP/DDE Target manager debug kernel dbgk32_hpux_pa: 3 2-bit HP-UX PA-RISC - Version 4.21.P4 Rev: 990205.163156 /opt/langtools/dde/mgrs/dbgk64_hpux_pa: HP/DDE Target manager debug kernel dbgk64_hpux_pa: 6 4-bit HP-UX PA-RISC - Version 4.21.P4 Rev: 990205.163501 /opt/langtools/dde/mgrs/ui_gui: HP DDE User interface manager ui_softdde: SoftBench UI interface to Softdebug+ - Version 4.21.P4 Rev: 990218.100626 REV: 970409.160253, 9000/879 HP-UX B.10.30 tedg@hydr a /opt/langtools/dde/mgrs/ui_line: HP/DDE User interface manager ui_line: Line-Mode UI - Version 4.21.P4 Rev: 990205.164054 /opt/langtools/dde/mgrs/lang_ftn: HP/DDE Language manager lang_ftn: Fortran 77 - Versi on 4.21.P4 Rev: 990205.164441 /opt/langtools/dde/mgrs/lang_asm_pa: HP/DDE Language manager lang_asm_pa: HP-UX PA-RISC a ssembler - Version 4.21.P4 Rev: 990205.164655 /opt/langtools/dde/mgrs/lang_c: HP/DDE Language manager lang_c: ANSI C - Version 4.2 1.P4 Rev: 990205.164202 /opt/langtools/dde/mgrs/lang_c++: HP/DDE Language manager lang_c++: C++ - Version 4.21 .P4 Rev: 990205.164258 /opt/langtools/dde/mgrs/lang_pas_apollo: HP/DDE Language manager lang_pas_apollo: Apollo Pasc al - Version 4.21.P4 Rev: 990205.164538 /opt/langtools/dde/mgrs/lang_pas_hp: HP/DDE Language manager lang_pas_hp: HP Pascal - Ver sion 4.21.P4 Rev: 990205.164614 /opt/langtools/dde/lib/nls/msg/C/lang_ftn.cat: None /opt/langtools/dde/lib/nls/msg/C/obj_mgr.cat: None /opt/langtools/dde/lib/nls/msg/C/dde.cat: None /opt/langtools/dde/lib/nls/msg/C/tgt_hpux_pa.cat: None cksum(1) Output: DDE.DDE,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP: 210236319 1872216 /opt/langtools/bin/dde.bin 1068175752 1003 /opt/langtools/bin/dde 2736279062 3452744 /opt/langtools/dde/ui/ddegui 4237406859 167936 /opt/langtools/dde/mgrs/obj_elf_som 1690021980 176128 /opt/langtools/dde/mgrs/obj_som_som 3572643028 348160 /opt/langtools/dde/mgrs/tgt_hpux_pa 2689408961 804096 /opt/langtools/dde/mgrs/dbgk32_hpux_pa 1877269853 824520 /opt/langtools/dde/mgrs/dbgk64_hpux_pa 3558032344 445816 /opt/langtools/dde/mgrs/ui_gui 4196095213 249856 /opt/langtools/dde/mgrs/ui_line 733908725 589824 /opt/langtools/dde/mgrs/lang_ftn 1861455982 110592 /opt/langtools/dde/mgrs/lang_asm_pa 3758747289 532480 /opt/langtools/dde/mgrs/lang_c 2148061496 458752 /opt/langtools/dde/mgrs/lang_c++ 1206915396 176128 /opt/langtools/dde/mgrs/lang_pas_apollo 43088129 180224 /opt/langtools/dde/mgrs/lang_pas_hp 2620034 1882 /opt/langtools/dde/lib/nls/msg/C/lang_ftn.cat 2458953371 4770 /opt/langtools/dde/lib/nls/msg/C/obj_mgr.cat 3409254600 47211 /opt/langtools/dde/lib/nls/msg/C/dde.cat 3642871691 10877 /opt/langtools/dde/lib/nls/msg/C/ tgt_hpux_pa.cat Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_16044 PHSS_17068 Equivalent Patches: None Patch Package Size: 10280 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHSS_17537 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHSS_17537.depot By default swinstall will archive the original software in /var/adm/sw/save/PHSS_17537. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHSS_17537.depot WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHSS_17537.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHSS_17537.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_17537.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch only patches DDE 4.21. If you have an earlier version of DDE, then you must install DDE 4.21 before you can apply the patch. Force applying this patch to an earlier version of DDE (earlier than 4.21) will totally break the older installed version of DDE.