bug-ddd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DDD 3.2.92 (i686-pc-linux-gnu) gets `Segmentation fault' signal


From: wim delvaux
Subject: DDD 3.2.92 (i686-pc-linux-gnu) gets `Segmentation fault' signal
Date: Sat, 23 Dec 2000 17:14:43 +0100

Actually just quitting the application.

However the application might have overwritten some memory somewhere
since it crashes too.

Log file attached
GNU DDD 3.2.92 (i686-pc-linux-gnu)
Copyright (C) 1995-1999 Technische Universität Braunschweig, Germany.
Copyright (C) 1999-2000 Universität Passau, Germany.

Compiled with GCC 2.95.2 20000220 (Debian GNU/Linux), GNU libc 2.2
Requires X11R6, Xt11R6, Motif 1.2 (GNU/LessTif Version 1.2 Release 0.91.8)
Includes XPM 3.4.11, Athena Panner, License, News, DDD core
Built 2000-12-17 by J.H.M. Dassen (Ray)  <jdassen@debian.org>.
$  ddd ./LINUX.arch/debug/DDP_Test
+  /bin/sh -c 'exec gdb -q -fullname '\''./LINUX.arch/debug/DDP_Test'\'''
#  Hello, world!
#  Starting GDB...
#  Enabling core dumps...
#  Enabling core dumps...done.
#  Running GDB (pid 2721, tty /dev/pts/0)...
#  Current language: C/C++
#  Searching "vsllib/ddd.vsl"...
#  Trying "/home/u19809/.ddd/vsllib/ddd.vsl"
#  Trying "/usr/share/ddd-3.2.92/vsllib/ddd.vsl"
#  Searching "vsllib/ddd.vsl"..."/usr/share/ddd-3.2.92/vsllib/ddd.vsl".
<- "(gdb) "
-> "set prompt (gdb) \n"
<- "(gdb) "
-> "set height 0\n"
<- "(gdb) "
-> "set width 0\n"
<- "(gdb) "
-> "set annotate 1\n"
<- "(gdb) "
-> " set verbose off\n"
<- "(gdb) "
-> "info line\n"
<- "No line number information available.\n"
   "(gdb) "
-> "list\n"
<- "117\t\t    // show DESD\n"
   "118\t\t    printf( \"STATE %s = %s\\n"
   "\", \n"
   "119\t\t\tMthP->GetName( O ), State->Buffer );\n"
   "120\t\t  }\n"
   "121\t\t}\n"
   "122\t}\n"
   "123\t\n"
   "124\tint main(int argc, char* argv[])\n"
   "125\t{\n"
   "126\t\tInstances_t*\t\tpCtx\t= NULL;\n"
   "(gdb) "
-> "info line\n"
<- "Line 126 of \"DDP_Test.c\" starts at address 0x8048f07 <main+23> and ends 
at 0x8048f0e <main+30>.\n"
   
"\032\032/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c:126:2645:beg:0x8048f07\n"
   "(gdb) "
-> "output 4711\n"
<- "4711(gdb) "
-> "show language\n"
<- "The current source language is \"auto; currently c\".\n"
   "(gdb) "
-> "show version\n"
<- "GNU gdb 5.0-with-shlib-patch(versie van wim)\n"
   "Copyright 2000 Free Software Foundation, Inc.\n"
   "GDB is free software, covered by the GNU General Public License, and you 
are\n"
   "welcome to change it and/or distribute copies of it under certain 
conditions.\n"
   "Type \"show copying\" to see the conditions.\n"
   "There is absolutely no warranty for GDB.  Type \"show warranty\" for 
details.\n"
   "This GDB was configured as \"i686-pc-linux-gnu\".\n"
   "(gdb) "
-> "pwd\n"
<- "Working directory 
/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C.\n"
   "(gdb) "
-> "info breakpoints\n"
<- "No breakpoints or watchpoints.\n"
   "(gdb) "
-> "show history filename\n"
<- "The filename in which to record the command history is 
\"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/.gdb_history\".\n"
   "(gdb) "
-> "show history size\n"
<- "The size of the command history is 256.\n"
   "(gdb) "
#  Reading file 
"/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c"...
#  Reading file 
"/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c"...done.
#  File 
"/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c"
 371 lines, 9772 characters
-> "info source\n"
<- "Current source file is DDP_Test.c\n"
   "Compilation directory is 
/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/\n"
   "Located in 
/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c\n"
   "Contains 371 lines.\n"
   "Source language is c.\n"
   "Compiled with stabs debugging format.\n"
   "(gdb) "
-> "info files\n"
<- "Symbols from 
\"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/./LINUX.arch/debug/DDP_Test\".\n"
   "Local exec file:\n"
   
"\t`/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/./LINUX.arch/debug/DDP_Test\',
 file type elf32-i386.\n"
   "\tEntry point: 0x8048ba0\n"
   "\t0x080480f4 - 0x08048107 is .interp\n"
   "\t0x08048108 - 0x08048128 is .note.ABI-tag\n"
   "\t0x08048128 - 0x0804827c is .hash\n"
   "\t0x0804827c - 0x0804855c is .dynsym\n"
   "\t0x0804855c - 0x0804879b is .dynstr\n"
   "\t0x0804879c - 0x080487f8 is .gnu.version\n"
   "\t0x080487f8 - 0x08048828 is .gnu.version_r\n"
   "\t0x08048828 - 0x08048850 is .rel.got\n"
   "\t0x08048850 - 0x08048958 is .rel.plt\n"
   "\t0x08048958 - 0x0804897d is .init\n"
   "\t0x08048980 - 0x08048ba0 is .plt\n"
   "\t0x08048ba0 - 0x08049adc is .text\n"
   "\t0x08049adc - 0x08049af8 is .fini\n"
   "\t0x08049b00 - 0x08049e46 is .rodata\n"
   "\t0x0804ae48 - 0x0804af80 is .data\n"
   "\t0x0804af80 - 0x0804af84 is .eh_frame\n"
   "\t0x0804af84 - 0x0804af8c is .ctors\n"
   "\t0x0804af8c - 0x0804af94 is .dtors\n"
   "\t0x0804af94 - 0x0804b038 is .got\n"
   "\t0x0804b038 - 0x0804b0f0 is .dynamic\n"
   "\t0x0804b0f0 - 0x0804b108 is .bss\n"
   "(gdb) "
-> "info program\n"
<- "The program being debugged is not being run.\n"
   "(gdb) "
-> "set confirm off\n"
<- "(gdb) "
-> "source /tmp/filepXVzu7\n"
<- "Byte order is not selectable.The target endianness is set automatically 
(currently little endian)\n"
   "/tmp/filepXVzu7:43: Error in sourced command file:\n"
   "Target \'exec\' cannot support this command.\n"
   "(gdb) "
-> "info breakpoints\n"
<- "No breakpoints or watchpoints.\n"
   "(gdb) "
-> "# reset\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "No breakpoints or watchpoints.\n"
   "(gdb) "
-> "display\n"
<- "(gdb) "
-> "info display\n"
<- "There are no auto-display expressions now.\n"
   "(gdb) "
-> "set environment TERM dumb\n"
<- "(gdb) "
-> "info files\n"
<- "Symbols from 
\"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/./LINUX.arch/debug/DDP_Test\".\n"
   "Local exec file:\n"
   
"\t`/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/./LINUX.arch/debug/DDP_Test\',
 file type elf32-i386.\n"
   "\tEntry point: 0x8048ba0\n"
   "\t0x080480f4 - 0x08048107 is .interp\n"
   "\t0x08048108 - 0x08048128 is .note.ABI-tag\n"
   "\t0x08048128 - 0x0804827c is .hash\n"
   "\t0x0804827c - 0x0804855c is .dynsym\n"
   "\t0x0804855c - 0x0804879b is .dynstr\n"
   "\t0x0804879c - 0x080487f8 is .gnu.version\n"
   "\t0x080487f8 - 0x08048828 is .gnu.version_r\n"
   "\t0x08048828 - 0x08048850 is .rel.got\n"
   "\t0x08048850 - 0x08048958 is .rel.plt\n"
   "\t0x08048958 - 0x0804897d is .init\n"
   "\t0x08048980 - 0x08048ba0 is .plt\n"
   "\t0x08048ba0 - 0x08049adc is .text\n"
   "\t0x08049adc - 0x08049af8 is .fini\n"
   "\t0x08049b00 - 0x08049e46 is .rodata\n"
   "\t0x0804ae48 - 0x0804af80 is .data\n"
   "\t0x0804af80 - 0x0804af84 is .eh_frame\n"
   "\t0x0804af84 - 0x0804af8c is .ctors\n"
   "\t0x0804af8c - 0x0804af94 is .dtors\n"
   "\t0x0804af94 - 0x0804b038 is .got\n"
   "\t0x0804b038 - 0x0804b0f0 is .dynamic\n"
   "\t0x0804b0f0 - 0x0804b108 is .bss\n"
   "(gdb) "
-> "info program\n"
<- "The program being debugged is not being run.\n"
   "(gdb) "
-> "set confirm off\n"
<- "(gdb) "
-> "set editing on\n"
<- "(gdb) "
-> "set exec-done-display off\n"
<- "(gdb) "
-> "set history expansion off\n"
<- "(gdb) "
-> "set history save off\n"
<- "(gdb) "
-> "set opaque-type-resolution on\n"
<- "(gdb) "
-> "set overload-resolution on\n"
<- "(gdb) "
-> "set pagination on\n"
<- "(gdb) "
-> "set print address on\n"
<- "(gdb) "
-> "set print array off\n"
<- "(gdb) "
-> "set print asm-demangle off\n"
<- "(gdb) "
-> "set print demangle on\n"
<- "(gdb) "
-> "set print null-stop on\n"
<- "(gdb) "
-> "set print object off\n"
<- "(gdb) "
-> "set print pretty off\n"
<- "(gdb) "
-> "set print sevenbit-strings off\n"
<- "(gdb) "
-> "set print static-members on\n"
<- "(gdb) "
-> "set print symbol-filename off\n"
<- "(gdb) "
-> "set print union on\n"
<- "(gdb) "
-> "set print vtbl off\n"
<- "(gdb) "
-> "set remotebreak off\n"
<- "(gdb) "
-> "set remotecache off\n"
<- "(gdb) "
-> "set symbol-reloading off\n"
<- "(gdb) "
-> "set unwindonsignal off\n"
<- "(gdb) "
-> "set verbose off\n"
<- "(gdb) "
-> "set write off\n"
<- "(gdb) "
-> "set auto-solib-add 1\n"
<- "(gdb) "
-> "set can-use-hw-watchpoints 1\n"
<- "(gdb) "
-> "set debug arch 0\n"
<- "(gdb) "
-> "set debug event 0\n"
<- "(gdb) "
-> "set debug expression 0\n"
<- "(gdb) "
-> "set debug overload 0\n"
<- "(gdb) "
-> "set debug remote 0\n"
<- "(gdb) "
-> "set debug serial 0\n"
<- "(gdb) "
-> "set debug target 0\n"
<- "(gdb) "
-> "set debugvarobj 0\n"
<- "(gdb) "
-> "set stop-on-solib-events 0\n"
<- "(gdb) "
-> "set architecture i386\n"
<- "(gdb) "
-> "set endian auto\n"
<- "Byte order is not selectable.The target endianness is set automatically 
(currently little endian)\n"
   "(gdb) "
-> "set demangle-style gnu\n"
<- "(gdb) "
-> "set language c++\n"
<- "(gdb) "
-> "set disassembly-flavor att\n"
<- "(gdb) "
-> "set follow-fork-mode ask\n"
<- "(gdb) "
-> "set scheduler-locking off\n"
<- "Target \'exec\' cannot support this command.\n"
   "(gdb) "
-> "set check range auto\n"
<- "(gdb) "
-> "set check type auto\n"
<- "(gdb) "
-> "set annotate 1\n"
<- "(gdb) "
-> "set complaints 0\n"
<- "(gdb) "
-> "set download-write-size 0d512\n"
<- "(gdb) "
-> "set gnutarget auto\n"
<- "(gdb) "
-> "set height 0\n"
<- "(gdb) "
-> "set history filename 
/net/disk2/u19809/soft/kde2apps/kaptain-0.5_MINE/Developer/.gdb_history\n"
<- "(gdb) "
-> "set history size 0d256\n"
<- "(gdb) "
-> "set input-radix 0d10\n"
<- "(gdb) "
-> "set listsize 0d10\n"
<- "(gdb) "
-> "set os \n"
<- "(gdb) "
-> "set output-radix 0d10\n"
<- "(gdb) "
-> "set print elements 0d200\n"
<- "(gdb) "
-> "set print max-symbolic-offset 0\n"
<- "(gdb) "
-> "set print repeats 0d10\n"
<- "(gdb) "
-> "set prompt (gdb) \n"
<- "(gdb) "
-> "set prompt-escape-char 0\n"
<- "(gdb) "
-> "set remote P-packet auto-detected, currently unknown\n"
<- "Undefined item: \"auto-detected, currently unknown\".\n"
   "(gdb) "
-> "set remote X-packet auto-detected, currently unknown\n"
<- "Undefined item: \"auto-detected, currently unknown\".\n"
   "(gdb) "
-> "set remote Z-packet auto-detected, currently unknown\n"
<- "Undefined item: \"auto-detected, currently unknown\".\n"
   "(gdb) "
-> "set remote memory-read-packet-size 0. Packets are limited to 399 bytes\n"
<- "(gdb) "
-> "set remote memory-write-packet-size 0. Packets are limited to 399 bytes\n"
<- "(gdb) "
-> "set remoteaddresssize 0d32\n"
<- "(gdb) "
-> "set remotebaud 0d4294967295\n"
<- "(gdb) "
-> "set remotelogbase ascii\n"
<- "(gdb) "
-> "set remotetimeout 0d2\n"
<- "(gdb) "
-> "set remotewritesize Argument required (integer, `fixed\' or `limited\')\n"
<- "Invalid memory-write-packet-size (bad syntax).\n"
   "(gdb) "
-> "set solib-search-path \n"
<- "(gdb) "
-> "set watchdog 0\n"
<- "(gdb) "
-> "set width 0\n"
<- "(gdb) "
-> "help detach\n"
<- "Detach a process or file previously attached.\n"
   "If a process, it is no longer traced, and it continues its execution.  If\n"
   "you were debugging a file, the file is closed and gdb no longer accesses 
it.\n"
   "(gdb) "
#  Starting GDB...done.
#  Welcome to DDD 3.2.92 "Once in a Lifetime" (i686-pc-linux-gnu)
-> "help run\n"
<- "Start debugged program.  You may specify arguments to give it.\n"
   "Args may include \"*\", or \"[...]\"; they are expanded using \"sh\".\n"
   "Input and output redirection with \">\", \"<\", or \">>\" are also 
allowed.\n"
   "\n"
   "With no arguments, uses arguments last specified (with \"run\" or \"set 
args\").\n"
   "To cancel previous arguments and run with no arguments,\n"
   "use \"set args\" without arguments.\n"
   "(gdb) "
-> "help step\n"
<- "Step program until it reaches a different source line.\n"
   "Argument N means do this N times (or till program stops for another 
reason).\n"
   "(gdb) "
-> "help stepi\n"
<- "Step one instruction exactly.\n"
   "Argument N means do this N times (or till program stops for another 
reason).\n"
   "(gdb) "
-> "help next\n"
<- "Step program, proceeding through subroutine calls.\n"
   "Like the \"step\" command as long as subroutine calls do not happen;\n"
   "when they do, the call is treated as one instruction.\n"
   "Argument N means do this N times (or till program stops for another 
reason).\n"
   "(gdb) "
-> "help nexti\n"
<- "Step one instruction, but proceed through subroutine calls.\n"
   "Argument N means do this N times (or till program stops for another 
reason).\n"
   "(gdb) "
-> "help until\n"
<- "Execute until the program reaches a source line greater than the current\n"
   "or a specified line or address or function (same args as break command).\n"
   "Execution will also stop upon exit from the current stack frame.\n"
   "(gdb) "
-> "help finish\n"
<- "Execute until selected stack frame returns.\n"
   "Upon return, the value returned is printed and put in the value history.\n"
   "(gdb) "
-> "help cont\n"
<- "Continue program being debugged, after signal or breakpoint.\n"
   "If proceeding from breakpoint, a number N may be used as an argument,\n"
   "which means to set the ignore count of that breakpoint to N - 1 (so that\n"
   "the breakpoint won\'t break until the Nth time it is reached).\n"
   "(gdb) "
-> "help signal\n"
<- "Continue program giving it signal specified by the argument.\n"
   "An argument of \"0\" means continue program without giving it a signal.\n"
   "(gdb) "
-> "help kill\n"
<- "Kill execution of program being debugged.\n"
   "(gdb) "
-> "help up\n"
<- "Select and print stack frame that called this one.\n"
   "An argument says how many frames up to go.\n"
   "(gdb) "
-> "help down\n"
<- "Select and print stack frame called by this one.\n"
   "An argument says how many frames down to go.\n"
   "(gdb) "
-> "help DescSet\n"
<- "Undefined command: \"DescSet\".  Try \"help\".\n"
   "(gdb) "
-> "set environment TERM dumb\n"
<- "(gdb) "
-> "run\n"
<- "Specify network definition file ... [Empty cancels]\n"
-> "Assigner\n"
<- "1. Quit\n"
   "2. Create DDP network\n"
   "3. Reset DDP network\n"
   "4. Open record file\n"
   "5. Process record\n"
   "6. Fetch Processor States\n"
   "7. Toggle Auto dump States\n"
   "8. Fetch DDP Network\n"
   "Enter value [1..8]: "
-> "5\n"
<- "Enter value for LongValue [ENTER cancels] : \n"
-> "21\n"
<- "Enter value for StringValue1 [ENTER cancels] : \n"
-> "1\n"
<- "Enter value for StringValue2 [ENTER cancels] : \n"
-> "1\n"
<- "Enter value for StringValue3 [ENTER cancels] : \n"
-> "1\n"
<- "1. Quit\n"
   "2. Create DDP network\n"
   "3. Reset DDP network\n"
   "4. Open record file\n"
   "5. Process record\n"
   "6. Fetch Processor States\n"
   "7. Toggle Auto dump States\n"
   "8. Fetch DDP Network\n"
   "Enter value [1..8]: "
-> "\003"
<- "\n"
   "Program received signal SIGINT, Interrupt.\n"
   "0x4014cc54 in read () from /lib/libc.so.6\n"
   "(gdb) "
-> "info breakpoints\n"
<- "No breakpoints or watchpoints.\n"
   "(gdb) "
-> "kill\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "No breakpoints or watchpoints.\n"
   "(gdb) "
-> "output fflush\n"
<- "Cannot access memory at address 0x400f6870\n"
   "(gdb) "
-> "output Network\n"
<- "No symbol \"Network\" in current context.\n"
   "(gdb) "
-> "break DDP_Test.c:291\n"
<- "Breakpoint 1 at 0x80496d1: file DDP_Test.c, line 291.\n"
   "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x080496d1 in main at DDP_Test.c:291\n"
   "(gdb) "
-> "set environment TERM dumb\n"
<- "(gdb) "
-> "run\n"
<- "Specify network definition file ... [Empty cancels]\n"
-> "Assigner\n"
<- "1. Quit\n"
<- "2. Create DDP network\n"
<- "3. Reset DDP network\n"
<- "4. Open record file\n"
<- "5. Process record\n"
<- "6. Fetch Processor States\n"
<- "7. Toggle Auto dump States\n"
<- "8. Fetch DDP Network\n"
<- "Enter value [1..8]: "
-> "5\n"
<- "Enter value for LongValue [ENTER cancels] : \n"
-> "22\n"
<- "Enter value for StringValue1 [ENTER cancels] : \n"
-> "1\n"
<- "Enter value for StringValue2 [ENTER cancels] : \n"
-> "1\n"
<- "Enter value for StringValue3 [ENTER cancels] : \n"
-> "1\n"
<- "\n"
<- "Breakpoint 1, main (argc=1"
<- ", argv=0xbffff854) at DDP_Test.c:291\n"
<- 
"\032\032/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c:291:6614:beg:0x80496d1\n"
<- "Warning: the current language does not match this frame.\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
<- "1   breakpoint     keep y   0x080496d1 in main at DDP_Test.c:291\n"
<- "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Reading file 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c"...
#  Reading file 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c"...done.
#  File 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c"
 371 lines, 9772 characters
-> "info source\n"
<- "Current source file is DDP_Test.c\n"
<- "Compilation directory is 
/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/\n"
<- "Located in 
/home/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Test.c\n"
<- "Contains 371 lines.\n"
<- "Source language is c.\n"
<- "Compiled with stabs debugging format.\n"
<- "(gdb) "
-> "step\n"
<- "orcc_Process (pMGO=0x804ce08, pTheRecord=0xbffff2b8, pTheDESD=0x804aec0, 
nNoOfTheDESD=4"
<- ") at DDP_Manager.c:588\n"
<- 
"\032\032/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c:588:15363:beg:0x4001b8e7\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
<- "1   breakpoint     keep y   0x080496d1 in main at DDP_Test.c:291\n"
<- "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Reading file 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Manager.c"...
#  Reading file 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/commands/Common_T/DDP_Test_C/DDP_Manager.c"...No
 such file or directory.
-> "info source\n"
<- "Current source file is DDP_Manager.c\n"
<- "Compilation directory is 
/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/\n"
<- "Located in 
/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c\n"
<- "Contains 778 lines.\n"
<- "Source language is c.\n"
<- "Compiled with stabs debugging format.\n"
<- "(gdb) "
#  Reading file "DDP_Manager.c" from GDB...
-> "list DDP_Manager.c:1,1000000\n"
<- "1\t#include <desceng.h>\n"
<- "2\t#include <dynarr.h>\n"
<- "3\t#include <descDESD.h>\n"
<- "4\t#include <assoca.h>\n"
<- "5\t\n"
<- "6\t#include <Frameworks/DDP_Manager.h>\n"
<- "7\t#include <Frameworks/DESDOps.h>\n"
<- "8\t#include <Frameworks/DDP_Processor.h>\n"
<- "9\t#include <Frameworks/DDP_Monitor.h>\n"
<- "10\t\n"
<- "11\tWillUseContract( DESD );\n"
<- "12\tWillUseComponent( DESD );\n"
<- "13\t\n"
<- "14\t/*>\n"
<- "15\t\tcomponent DDP_Manager\n"
<- "16\t\n"
<- "17\t\tfunctionsets for version pattern x x x\n"
<- "18\t\t\torc_DDP_Manager\n"
<- "19\t\t\torc_Object\n"
<- "20\t\tend version\n"
<- "21\t\n"
<- "22\t\tfunctionset orc_Object for contract Object\n"
<- "23\t\t\torcc_Read\n"
<- "24\t\t\torcc_Write\n"
<- "25\t\t\torcc_Dispose\n"
<- "26\t\tend functionset\n"
<- "27\t\n"
<- "28\t\tfunctionset orc_DDP_Manager for contract DDP_Manager\n"
<- "29\t\t\torcc_Create\n"
<- "30\t\t\torcc_AddObject\n"
<- "31\t\t\torcc_RemoveObject\n"
<- "32\t\t\torcc_RemoveObjectByName\n"
<- "33\t\t\torcc_GetRoot\n"
<- "34\t\t\torcc_GetObjectByName\n"
<- "35\t\t\torcc_RenameObject\n"
<- "36\t\t\torcc_GetAllObjects\n"
<- "37\t\t\torcc_RegisterInterest\n"
<- "38\t\t\torcc_RegisterInterestByName\n"
<- "39\t\t\torcc_UnregisterInterest\n"
<- "40\t\t\torcc_UnregisterInterestByName\n"
<- "41\t\t\torcc_SignalChange\n"
<- "42\t\t\torcc_GetAndToNextProcessor\n"
<- "43\t\t\torcc_SignalError\n"
<- "44\t\t\torcc_Reset\n"
<- "45\t\t\torcc_Process\n"
<- "46\t\tend functionset\n"
<- "47\t\n"
<- "48\t\tend component\n"
<- "49\t<*/\n"
<- "50\t\n"
<- "51\t#include \"DDP_Manager.dep\"\n"
<- "52\t\n"
<- "53\tWillUseComponent(DDP_Manager);\n"
<- "54\tWillUseContract(DDP_Processor);\n"
<- "55\tWillUseContract(DDP_Monitor);\n"
<- "56\t\n"
<- "57\ttypedef struct struct_DescribePC DescribePC_t;\n"
<- "58\tstruct struct_DescribePC\n"
<- "59\t{\n"
<- "60\t\tObject_t*\t\t\t\tpPC;\n"
<- "61\t\tDDP_Processor_Methods*\t                pPCMth;\n"
<- "62\t\n"
<- "63\t\t// registered objects\n"
<- "64\t\tDynArray_t*\t\t\t\tpOCs;\n"
<- "65\t};\n"
<- "66\t\n"
<- "67\ttypedef struct struct_DDP_Manager IDDP_Manager_t;\n"
<- "68\tstruct struct_DDP_Manager\n"
<- "69\t{\n"
<- "70\t\tObject_t*\t\tpRootPC;\n"
<- "71\t\tDDP_Processor_Methods*\tpRootPCMth;\n"
<- "72\t\n"
<- "73\t\t//\tstores PC_Describe_t* (PC and a list OC registered for this PC)\n"
<- "74\t\tDynArray_t*\t\tpPCs;\n"
<- "75\t\n"
<- "76\t\tIDDP_Manager_t*\tSelf;\t// to be DESC compatible\n"
<- "77\t};\n"
<- "78\t\n"
<- "79\tstatic void helper_DisposeDescribePC(DescribePC_t* pDescribePC, void* 
_DUMMY_)\n"
<- "80\t{\n"
<- "81\t\t// dispose OCs\n"
<- "82\t\tDA_Dispose(pDescribePC->pOCs, NULL, NULL);\n"
<- "83\t\n"
<- "84\t\t// dispose PC\n"
<- "85\t\tObject_Dispose(pDescribePC->pPC, NULL);\t// only releases lock 
(object use)\n"
<- "86\t\tObject_Dispose(pDescribePC->pPC, NULL);\t// releases double lock\n"
<- "87\t}\n"
<- "88\t\n"
<- "89\tstatic int CmpPCByName(char* sName, DescribePC_t* pDescribePC, void* 
_DUMMY_) {\n"
<- "90\t\treturn strcmp( pDescribePC->pPCMth->GetName(pDescribePC->pPC), sName 
);\n"
<- "91\t}\n"
<- "92\t\n"
<- "93\tstatic int CmpPCByPCPointer(Object_t* pPC, \n"
<- "94\t        DescribePC_t* pDescribePC, void* _DUMMY_) {\n"
<- "95\t\treturn (long)(pDescribePC->pPC)-(long)pPC;\n"
<- "96\t}\n"
<- "97\t\n"
<- "98\tstatic int CmpRegOByPointer(Object_t* pPC, \n"
<- "99\t        Object_t ** pRegisteredObj, void* _DUMMY_) {\n"
<- "100\t\treturn (long)(*pRegisteredObj)-(long)pPC;\n"
<- "101\t}\n"
<- "102\t\n"
<- 
"103\t/************************************************************************/\n"
<- "104\t/* INTERFACE FUNCTIONS\t\t\t\t\t\t\t\t\t\t\t\t\t*/\n"
<- 
"105\t/************************************************************************/\n"
<- "106\t\n"
<- "107\t                        /*************/\n"
<- "108\t                        /* Mandatory */\n"
<- "109\t                        /*************/\n"
<- "110\t\n"
<- "111\tstatic void* orcc_Read(Object_t* _DUMMY_, \n"
<- "112\t        Instances_t* _DUMMY_,\n"
<- "113\t\tDataStream_t* _DUMMY_, \n"
<- "114\t        DataStream_Methods* _DUMMY_, \n"
<- "115\t        Desc_ReadMode_t M, \n"
<- "116\t        void* _DUMMY_)\n"
<- "117\t{\n"
<- "118\t\tIDDP_Manager_t* is = Desc_AllocItem(IDDP_Manager_t);\n"
<- "119\t\treturn (void*)is;\n"
<- "120\t}\n"
<- "121\t\n"
<- "122\tstatic void orcc_Write(Object_t* _DUMMY_,\n"
<- "123\t         DataStream_t* _DUMMY_, \n"
<- "124\t         DataStream_Methods* _DUMMY_, \n"
<- "125\t         Object_t* _DUMMY_, \n"
<- "126\t         void* _DUMMY_)\n"
<- "127\t{\n"
<- "128\t\tEXC_NYI(\"orcc_Write\");\n"
<- "129\t}\n"
<- "130\t\n"
<- "131\tstatic DeferralFlags_t orcc_Dispose(Object_t* pO, void* _DUMMY_)\n"
<- "132\t{\n"
<- "133\t\tIDDP_Manager_t* AC = Object_As(pO, IDDP_Manager_t);\n"
<- "134\t\tEVAPI_ENTER(orcc_Dispose);\n"
<- "135\t\n"
<- "136\t\tVerifySelf(AC);\n"
<- "137\t\n"
<- "138\t\t// will only release locks from all PCs (including root)\n"
<- "139\t\tDA_Dispose(AC->pPCs, helper_DisposeDescribePC, NULL);\n"
<- "140\t\n"
<- "141\t\tif(AC->pRootPC) {\n"
<- "142\t\t  Object_Dispose(AC->pRootPC, NULL);\t// actually dispose root\n"
<- "143\t\t}\n"
<- "144\t\n"
<- "145\t\tfree( AC );\n"
<- "146\t\tEVAPI_LEAVE(orcc_Dispose);\n"
<- "147\t\treturn OBJ_Unloaded;\n"
<- "148\t}\n"
<- "149\t\n"
<- "150\t\n"
<- "151\t                        /******************/\n"
<- "152\t                        /* DDP_Manager */\n"
<- "153\t                        /******************/\n"
<- "154\t\n"
<- "155\tstatic Object_t* orcc_Create(Instances_t* pCtx, \n"
<- "156\t                StrAssocArray_t* _DUMMY_/*pAttributes*/)\n"
<- "157\t{\n"
<- "158\t\tIDDP_Manager_t* AC\t= Desc_AllocItem(IDDP_Manager_t);\n"
<- "159\t\tObject_t * pMGO;\n"
<- "160\t\tEVAPI_ENTER(orcc_Create);\n"
<- "161\t\n"
<- "162\t\tAC->pPCs\t\t\t= DA_Create(DescribePC_t);\n"
<- "163\t\tAC->Self\t\t\t= AC;\n"
<- "164\t\n"
<- "165\t\t// now everything is good, we can create an object\n"
<- "166\t\tpMGO = Object_Create(pCtx, Component(DDP_Manager), AC);\n"
<- "167\t\n"
<- "168\t\tEVAPI_LEAVE(orcc_Create);\n"
<- "169\t\treturn pMGO;\n"
<- "170\t}\n"
<- "171\t\n"
<- "172\tstatic void orcc_AddObject(Object_t* pMGO, Object_t* pPC, char 
bIsRoot)\n"
<- "173\t{\n"
<- "174\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
<- "175\t\tDescribePC_t* pDescribePC;\n"
<- "176\t\tDescribePC_t DescribePC;\n"
<- "177\t\tEVAPI_ENTER(orcc_AddObject);\n"
<- "178\t\n"
<- "179\t\tVerifySelf(AC);\n"
<- "180\t\n"
<- "181\t\t// first check that this pPC is already known to pMGO\n"
<- "182\t\tpDescribePC = (DescribePC_t*)\n"
<- "183\t\t\tDA_Find(AC->pPCs, pPC, CmpPCByPCPointer, NULL, NULL);\n"
<- "184\t\n"
<- "185\t\tif(pDescribePC)\n"
<- "186\t\t  EXC_Raise(CLASS_PROJECT, PRI_ERR, 9999, \"s\", \n"
<- "187\t\t\t\"PC Object already in DDP network. Can\'t add twice\");\n"
<- "188\t\n"
<- "189\t\tDescribePC.pPC\t\t= pPC;\n"
<- "190\t\tDescribePC.pPCMth\t= Object_GetContract(pPC, DDP_Processor);\n"
<- "191\t\tDescribePC.pOCs\t\t= DA_Create(Object_t*);\n"
<- "192\t\tDA_AddElement(AC->pPCs, &DescribePC);\n"
<- "193\t\n"
<- "194\t\tif(bIsRoot) {\n"
<- "195\t\t  AC->pRootPC = pPC;\n"
<- "196\t\t  AC->pRootPCMth = DescribePC.pPCMth;\n"
<- "197\t\t}\n"
<- "198\t\n"
<- "199\t\tObject_Use(pPC);\t// lock object\n"
<- "200\t\tObject_Use(pPC);\t// double lock object\n"
<- "201\t\n"
<- "202\t\t// signal to this object( and subobjects )that we are the master\n"
<- "203\t\tDescribePC.pPCMth->Message(pPC, DDP_SET_MANAGER, pMGO);\n"
<- "204\t\n"
<- "205\t\tEVAPI_LEAVE(orcc_AddObject);\n"
<- "206\t}\n"
<- "207\t\n"
<- "208\t// Removes given pPC from the network, pMGO does not dispose it\n"
<- "209\tstatic void orcc_RemoveObject(Object_t* pMGO, Object_t* pPC)\n"
<- "210\t{\n"
<- "211\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
<- "212\t\tlong i;\n"
<- "213\t\tDescribePC_t* pDescribePC;\n"
<- "214\t\tEVAPI_ENTER(orcc_RemoveObject);\n"
<- "215\t\n"
<- "216\t\tVerifySelf(AC);\n"
<- "217\t\n"
<- "218\t\t// first check that this pPC is known to pMGO\n"
<- "219\t\tpDescribePC = (DescribePC_t*)\n"
<- "220\t\t\tDA_Find(AC->pPCs, pPC, CmpPCByPCPointer, NULL, &i);\n"
<- "221\t\n"
<- "222\t\tif(!pDescribePC)\n"
<- "223\t\t\tEXC_Raise(CLASS_PROJECT, PRI_ERR, 9999, \"s\", \"PC Object not 
found in DDP network. Can\'t delete it\");\n"
<- "224\t\n"
<- "225\t\tif(pDescribePC->pPC == AC->pRootPC) {\n"
<- "226\t\t  AC->pRootPC = 0;\n"
<- "227\t\t  AC->pRootPCMth = 0;\n"
<- "228\t\t}\n"
<- "229\t\n"
<- "230\t\t// only release lock from pPC, doesn\'t dispose pPC\n"
<- "231\t\thelper_DisposeDescribePC(pDescribePC, 0);\n"
<- "232\t\t// now we have to delete PC from an array\n"
<- "233\t\tDA_Delete(AC->pPCs, i);\n"
<- "234\t\n"
<- "235\t\tEVAPI_LEAVE(orcc_RemoveObject);\n"
<- "236\t}\n"
<- "237\t\n"
<- "238\tstatic void orcc_RemoveObjectByName(Object_t* pMGO, char* sName)\n"
<- "239\t{\n"
<- "240\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
<- "241\t\tDescribePC_t* pDescribePC;\n"
<- "242\t\tEVAPI_ENTER(orcc_RemoveObjectByName);\n"
<- "243\t\n"
<- "244\t\tVerifySelf(AC);\n"
<- "245\t\n"
<- "246\t\tpDescribePC = (DescribePC_t*)\n"
<- "247\t\t\tDA_Find(AC->pPCs, sName, CmpPCByName, NULL, NULL);\n"
<- "248\t\n"
<- "249\t\tif(!pDescribePC)\n"
<- "250\t\t\tEXC_Raise(CLASS_PROJECT, PRI_ERR, 9999, \"ss\", \"PC Object not 
found by name in DDP network. Can\'t delete it\", sName);\n"
<- "251\t\n"
<- "252\t\torcc_RemoveObject(pMGO, pDescribePC->pPC);\n"
<- "253\t\tEVAPI_LEAVE(orcc_RemoveObjectByName);\n"
<- "254\t\treturn;\n"
<- "255\t}\n"
<- "256\t\n"
<- "257\tstatic Object_t* orcc_GetRoot(Object_t* pMGO)\n"
<- "258\t{\n"
<- "259\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
<- "260\t\tEVAPI_ENTER(orcc_GetRoot);\n"
<- "261\t\n"
<- "262\t\tVerifySelf(AC);\n"
<- "263\t\n"
<- "264\t\tEVAPI_LEAVE(orcc_GetRoot);\n"
<- "265\t\treturn AC->pRootPC;\n"
<- "266\t}\n"
<- "267\t\n"
<- "268\tstatic Object_t* orcc_GetObjectByName(Object_t* pMGO, char* sName)\n"
<- "269\t{\n"
<- "270\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
<- "271\t\tDescribePC_t* pDescribePC;\n"
<- "272\t\tEVAPI_ENTER(orcc_GetObjectByName);\n"
<- "273\t\n"
<- "274\t\tVerifySelf(AC);\n"
<- "275\t\n"
<- "276\t\tpDescribePC = (DescribePC_t*)\n"
<- "277\t\t\tDA_Find(AC->pPCs, sName, CmpPCByName, NULL, NULL);\n"
<- "278\t\n"
<- "279\t\tEVAPI_LEAVE(orcc_GetObjectByName);\n"
<- "280\t\treturn pDescribePC? pDescribePC->pPC : 0;\n"
<- "281\t}\n"
<- "282\t\n"
<- "283\tstatic void orcc_RenameObject(Object_t* pMGO, \n"
<- "284\t        Object_t * Obj, char* NewName)\n"
<- "285\t{\n"
<- "286\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
<- "287\t\tDescribePC_t* pDescribePC;\n"
<- "288\t\tlong i;\n"
<- "289\t\n"
<- "290\t\tEVAPI_ENTER(orcc_RenameObject);\n"
<- "291\t\n"
<- "292\t\tVerifySelf(AC);\n"
<- "293\t\n"
<- "294\t\tpDescribePC = (DescribePC_t*)\n"
<- "295\t\t\tDA_Find(AC->pPCs, Obj, CmpPCByPCPointer, NULL, &i);\n"
<- "296\t\n"
<- "297\t\tif( pDescribePC ) {\n"
<- "298\t\t  DESD_t * DESD;\n"
<- "299\t\t  long DESDCt;\n"
<- "300\t\t  void * Cfg;\n"
<- "301\t\t  // fetch config and rename Name field;\n"
<- "302\t\t  Cfg = pDescribePC->pPCMth->GetConfiguration(\n"
<- "303\t\t        Obj, &DESD, &DESDCt );\n"
<- "304\t\n"
<- "305\t          // find name \n"
<- "306\t          { long i;\n"
<- "307\t            for( i = 0 ; i < DESDCt; i ++ ) {\n"
<- "308\t              if( strcmp( DESD[i].FieldName, \"Name\" ) == 0 ) {\n"
<- "309\t                AllCTypes_t CT;\n"
<- "310\t\n"
<- "311\t                CT.Type = CT_String;\n"
<- "312\t                CT.Value.String = NewName;\n"
<- "313\t\n"
<- "314\t                // set new value for this value\n"
<- "315\t                Component_GetContract( DESD, DESD, \n"
<- "316\t                        0 )->SetValueFromCType( Cfg, &(DESD[i]), CT 
);\n"
<- "317\t                break;\n"
<- "318\t              }\n"
<- "319\t            }\n"
<- "320\t\t  }\n"
<- "321\t\t}\n"
   "322\t\n"
   "323\t\tEVAPI_LEAVE(orcc_RenameObject);\n"
   "324\t}\n"
   "325\t\n"
   "326\tstatic DynArray_t* orcc_GetAllObjects(Object_t* pMGO)\n"
   "327\t{\n"
   "328\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "329\t\tlong\t\t\ti = -1;\n"
   "330\t\tDescribePC_t*\tpDescribePC;\n"
   "331\t\tDynArray_t* pPCs;\n"
   "332\t\tEVAPI_ENTER(orcc_GetAllObjects);\n"
   "333\t\n"
   "334\t\tVerifySelf(AC);\n"
   "335\t\n"
   "336\t\tpPCs = DA_Create(Object_t*);\n"
   "337\t\n"
   "338\t\twhile(DA_GetAndToNext(AC->pPCs, &i, &pDescribePC) != 0)\n"
   "339\t\t\tDA_AddElement(pPCs, &(pDescribePC->pPC));\n"
   "340\t\n"
   "341\t\tEVAPI_LEAVE(orcc_GetAllObjects);\n"
   "342\t\treturn pPCs;\n"
   "343\t}\n"
   "344\t\n"
   "345\tstatic void orcc_RegisterInterest(Object_t* pMGO, \n"
   "346\t                Object_t* pPC, Object_t* pOC)\n"
   "347\t{\n"
   "348\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "349\t\tDescribePC_t* pDescribePC;\n"
   "350\t\tEVAPI_ENTER(orcc_RegisterInterest);\n"
   "351\t\n"
   "352\t\tVerifySelf(AC);\n"
   "353\t\n"
   "354\t\tif( pPC ) {\n"
   "355\t\t  // first check that this pPC is known to pMGO\n"
   "356\t\t  pDescribePC = (DescribePC_t*)\n"
   "357\t\t    DA_Find(AC->pPCs, pPC, CmpPCByPCPointer, NULL, NULL);\n"
   "358\t\n"
   "359\t\t  if(!pDescribePC)\n"
   "360\t\t    EXC_Raise(CLASS_PROJECT, PRI_ERR, 9999, \"s\", \n"
   "361\t\t\t  \"OC wants to register PC but PC is unknown to pMGO\");\n"
   "362\t\n"
   "363\t          if( DA_Find( pDescribePC->pOCs, pOC, CmpRegOByPointer, 0, 0 
) == 0 ) {\n"
   "364\t\t    // not yet registered -> register PC for OC\n"
   "365\t\t    DA_AddElement(pDescribePC->pOCs, &pOC);\n"
   "366\t\t  }\n"
   "367\t\t} else {\n"
   "368\t\t  // add registration to all processor objects\n"
   "369\t\t  long i = -1;\n"
   "370\t\t  while( DA_GetAndToNext( AC->pPCs, &i, &pDescribePC ) ) {\n"
   "371\t\t    if( DA_Find( pDescribePC->pOCs, \n"
   "372\t\t        pOC, CmpRegOByPointer, 0, 0 ) == 0 ) {\n"
   "373\t\t      // not yet registered -> register PC for OC\n"
   "374\t\t      DA_AddElement(pDescribePC->pOCs, &pOC);\n"
   "375\t\t    }\n"
   "376\t\t  }\n"
   "377\t\t}\n"
   "378\t\n"
   "379\t\tEVAPI_LEAVE(orcc_RegisterInterest);\n"
   "380\t}\n"
   "381\t\n"
   "382\tstatic void orcc_RegisterInterestByName(Object_t* pMGO, \n"
   "383\t                char* sName, Object_t* pOC)\n"
   "384\t{\n"
   "385\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "386\t\tDescribePC_t* pDescribePC;\n"
   "387\t\tEVAPI_ENTER(orcc_RegisterInterestByName);\n"
   "388\t\n"
   "389\t\tVerifySelf(AC);\n"
   "390\t\n"
   "391\t\tpDescribePC = (DescribePC_t*)\n"
   "392\t\t\tDA_Find(AC->pPCs, sName, CmpPCByName, NULL, NULL);\n"
   "393\t\n"
   "394\t\tif(!pDescribePC)\n"
   "395\t\t  EXC_Raise(CLASS_PROJECT, PRI_ERR, 9999, \"ss\", \n"
   "396\t\t        \"PC Object not found by name in DDP network. Can\'t 
register OC interest for it\", sName);\n"
   "397\t\n"
   "398\t\tif( DA_Find( pDescribePC->pOCs, pOC, CmpRegOByPointer, 0, 0 ) == 0 ) 
{\n"
   "399\t\t  // not yet registered -> register PC for OC\n"
   "400\t\t  DA_AddElement(pDescribePC->pOCs, &pOC);\n"
   "401\t\t}\n"
   "402\t\n"
   "403\t\tEVAPI_LEAVE(orcc_RegisterInterestByName);\n"
   "404\t\treturn;\n"
   "405\t}\n"
   "406\t\n"
   "407\tstatic void orcc_UnregisterInterest(Object_t* pMGO, Object_t* pPC, 
Object_t* pOC)\n"
   "408\t{\n"
   "409\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "410\t\tDescribePC_t* pDescribePC;\n"
   "411\t\tEVAPI_ENTER(orcc_UnregisterInterest);\n"
   "412\t\n"
   "413\t\tVerifySelf(AC);\n"
   "414\t\n"
   "415\t\tif( pPC ) {\n"
   "416\t\t  long i; \n"
   "417\t\t  // first check that this pPC is known to pMGO\n"
   "418\t\t  pDescribePC = (DescribePC_t*)\n"
   "419\t\t\t  DA_Find(AC->pPCs, pPC, CmpPCByPCPointer, NULL, NULL);\n"
   "420\t\n"
   "421\t\t  if(!pDescribePC)\n"
   "422\t\t    EXC_Raise(CLASS_PROJECT, PRI_ERR, 9999, \"s\", \n"
   "423\t\t        \"OC wants to unregister PC but PC is unknown to pMGO\");\n"
   "424\t\n"
   "425\t\t  if( DA_Find( pDescribePC->pOCs, pOC, CmpRegOByPointer, 0, &i ) ) 
{\n"
   "426\t\t    // found at index i\n"
   "427\t\t    DA_Delete(pDescribePC->pOCs, i);\n"
   "428\t\t  }\n"
   "429\t\t} else {\n"
   "430\t\t  // unregister with every object\n"
   "431\t\t  long i = -1;\n"
   "432\t\t  while( DA_GetAndToNext( AC->pPCs, &i, &pDescribePC ) ) {\n"
   "433\t\t    if( DA_Find( pDescribePC->pOCs, pOC, CmpRegOByPointer, 0, &i ) ) 
{\n"
   "434\t\t      // found at index i\n"
   "435\t\t      DA_Delete(pDescribePC->pOCs, i);\n"
   "436\t\t    }\n"
   "437\t\t  }\n"
   "438\t\t}\n"
   "439\t}\n"
   "440\t\n"
   "441\tstatic void orcc_UnregisterInterestByName(Object_t* pMGO, char* sName, 
Object_t* pOC)\n"
   "442\t{\n"
   "443\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "444\t\tDescribePC_t* pDescribePC;\n"
   "445\t\tEVAPI_ENTER(orcc_UnregisterInterestByName);\n"
   "446\t\n"
   "447\t\tVerifySelf(AC);\n"
   "448\t\n"
   "449\t\tpDescribePC = (DescribePC_t*)\n"
   "450\t\t\tDA_Find(AC->pPCs, sName, CmpPCByName, NULL, NULL);\n"
   "451\t\n"
   "452\t\tif(!pDescribePC)\n"
   "453\t\t  EXC_Raise(CLASS_PROJECT, PRI_"
<- "ERR, 9999, \"ss\", \n"
   "454\t\t        \"PC Object not found by name in DDP network. Can\'t 
unregister OC interest for it\", sName);\n"
   "455\t\n"
   "456\t\tif( DA_Find( pDescribePC->pOCs, pOC, CmpRegOByPointer, 0, 0 ) == 0 ) 
{\n"
   "457\t\t  // not yet registered -> register PC for OC\n"
   "458\t\t  DA_AddElement(pDescribePC->pOCs, &pOC);\n"
   "459\t\t}\n"
   "460\t\tEVAPI_LEAVE(orcc_UnregisterInterestByName);\n"
   "461\t\treturn;\n"
   "462\t}\n"
   "463\t\n"
   "464\t// call used by PC to signal state changes.  MG dispatch to all 
registered output components\n"
   "465\tstatic void orcc_SignalChange(Object_t* pMGO, Object_t* pPC )\n"
   "466\t{\n"
   "467\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "468\t\tDescribePC_t* pDescribePC;\n"
   "469\t\tlong i = -1;\n"
   "470\t\tObject_t* pRegisteredOC;\n"
   "471\t\tEVAPI_ENTER(orcc_SignalChange);\n"
   "472\t\n"
   "473\t\tVerifySelf(AC);\n"
   "474\t\n"
   "475\t\t// first check that this pPC is known to pMGO\n"
   "476\t\tpDescribePC = (DescribePC_t*)\n"
   "477\t\t\tDA_Find(AC->pPCs, pPC, CmpPCByPCPointer, NULL, NULL);\n"
   "478\t\n"
   "479\t\tif(!pDescribePC)\n"
   "480\t\t  EXC_Raise(CLASS_PROJECT, PRI_ERR, 9999, \"s\", \n"
   "481\t\t\t  \"PC signals change but PC is unknown to MGO\");\n"
   "482\t\n"
   "483\t\t// signal to interested objects\n"
   "484\t\twhile(DA_GetAndToNextValue(pDescribePC->pOCs, &i, &pRegisteredOC)) 
{\n"
   "485\t\t  DDP_Monitor_Methods* pMth = Object_GetContract(pRegisteredOC, \n"
   "486\t\t                DDP_Monitor);\n"
   "487\t\t  pMth->SignalChange(pRegisteredOC, pPC, pDescribePC->pPCMth );\n"
   "488\t\t}\n"
   "489\t\n"
   "490\t\tEVAPI_LEAVE(orcc_SignalChange);\n"
   "491\t}\n"
   "492\t\n"
   "493\tstatic Object_t * orcc_GetAndToNextProcessor(Object_t* pMGO, Object_t 
* pOC,\n"
   "494\t        long * i, void ** MthPC )\n"
   "495\t{\n"
   "496\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "497\t\tDescribePC_t* pDescribePC;\n"
   "498\t\tEVAPI_ENTER(orcc_GetAndToNextProcessor);\n"
   "499\t\n"
   "500\t\tVerifySelf(AC);\n"
   "501\t\n"
   "502\t\twhile( ( DA_GetAndToNext( AC->pPCs, i, &pDescribePC ) ) ) {\n"
   "503\t\t  // next Processor \n"
   "504\t\t  if( pOC == 0 || \n"
   "505\t\t      DA_Find( pDescribePC->pOCs, pOC, CmpRegOByPointer, 0, 0 ) ) 
{\n"
   "506\t\t    // pOC is registered for this PC \n"
   "507\t\t    // or No pOC was given -> so we must fetch every object\n"
   "508\t\t    *MthPC = (void *)pDescribePC->pPCMth;\n"
   "509\t\t    EVAPI_LEAVE(orcc_GetAndToNextProcessor);\n"
   "510\t\t    return pDescribePC->pPC;\n"
   "511\t\t  }\n"
   "512\t\t}\n"
   "513\t\n"
   "514\t        // no more objects\n"
   "515\t\n"
   "516\t\tEVAPI_LEAVE(orcc_GetAndToNextProcessor);\n"
   "517\t        return 0;\n"
   "518\t}\n"
   "519\t\n"
   "520\t// this call is to be used by PC object to signal ANY error in the DDP 
network.\n"
   "521\t// Message is a format string\n"
   "522\t// int SignalError returns 1, the object should just raise an 
exception. \n"
   "523\t// if 0 the error should be ignored\n"
   "524\t// and procssing should continue (or just returned as if proccessing 
\n"
   "525\t// had continued)\n"
   "526\tstatic int orcc_SignalError(Object_t* pMGO, Object_t* pPC, char* 
sFile, long nLine, long nErrorNum, char sMessage, ...)\n"
   "527\t{\n"
   "528\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "529\t\tEVAPI_ENTER(orcc_SignalError);\n"
   "530\t\n"
   "531\t\tVerifySelf(AC);\n"
   "532\t\n"
   "533\t\tEVAPI_LEAVE(orcc_SignalError);\n"
   "534\t\treturn 1;\n"
   "535\t}\n"
   "536\t\n"
   "537\tstatic void orcc_Reset( Object_t* pMGO ) {\n"
   "538\t\n"
   "539\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "540\t\n"
   "541\t\tEVAPI_ENTER(orcc_Reset);\n"
   "542\t\n"
   "543\t\tVerifySelf(AC);\n"
   "544\t\n"
   "545\t\tif( AC->pRootPC ) {\n"
   "546\t\t  AC->pRootPCMth->Message( AC->pRootPC, DDP_RESET, 0 );\n"
   "547\t\t}\n"
   "548\t\tEVAPI_LEAVE(orcc_Reset);\n"
   "549\t}\n"
   "550\t\n"
   "551\ttypedef struct Step_S Step_t;\n"
   "552\tstruct Step_S {\n"
   "553\t        // processor that triggered this step\n"
   "554\t        Object_t * P;\n"
   "555\t        DDP_Processor_Methods * MthP;\n"
   "556\t\n"
   "557\t        // output record of this processor \n"
   "558\t        // if it had no output -> it is the same as previous step\n"
   "559\t        void * Record;\n"
   "560\t        // 1 if Record field is pointer and does not need to be 
freed\n"
   "561\t        char IsPointer    : 1 ; \n"
   "562\t        // 1 if Processor needs to be re-executed\n"
   "563\t        char IsPersistent : 1 ; \n"
   "564\t        DESD_t * DESD;\n"
   "565\t        long NoOfDESD;\n"
   "566\t\n"
   "567\t        // current child being processed\n"
   "568\t        long CurrentChild;\n"
   "569\t        // list of dependent children of this processor\n"
   "570\t        DynArray_t * Children;\n"
   "571\t};\n"
   "572\t\n"
   "573\tstatic void CleanItem( Step_t * Curr, void * _DUMMY_ ) {\n"
   "574\t\tif( ! Curr->IsPointer ) {\n"
   "575\t\t  // cleanup record\n"
   "576\t\t  "
<- "Component_GetContract( DESD, DESD, 0 )->ResetValues(\n"
   "577\t\t\tCurr->Record,\n"
   "578\t\t\tCurr->DESD,\n"
   "579\t\t\tCurr->NoOfDESD );\n"
   "580\t\t  free( Curr->Record );\n"
   "581\t\t  free( Curr->DESD );\n"
   "582\t\t}\n"
   "583\t}\n"
   "584\t\n"
   "585\tstatic int orcc_Process( Object_t* pMGO,\n"
   "586\t\tvoid* pTheRecord, DESD_t* pTheDESD, long nNoOfTheDESD ) {\n"
   "587\t\n"
   "588\t\tint Rv = 0;\n"
   "589\t\tIDDP_Manager_t* AC = Object_As(pMGO, IDDP_Manager_t);\n"
   "590\t\n"
   "591\t\tEVAPI_ENTER(orcc_Process);\n"
   "592\t\n"
   "593\t\tVerifySelf(AC);\n"
   "594\t\n"
   "595\t\tif( AC->pRootPC ) {\n"
   "596\t\t  DDP_Result_t nResult;\n"
   "597\t\t  Step_t NewStep;\n"
   "598\t\t  Step_t ThisStep;\n"
   "599\t\t  DynArray_t ExecutionStack;\n"
   "600\t\t  Step_t * Curr;\n"
   "601\t\t  long Top = -1;\n"
   "602\t\n"
   "603\t\t  DA_Initialize( &ExecutionStack, Step_t );\n"
   "604\t\n"
   "605\t\t  // initialize execution \n"
   "606\t\t  ThisStep.P = AC->pRootPC;\n"
   "607\t\t  ThisStep.MthP = AC->pRootPCMth;\n"
   "608\t\t  ThisStep.Record = pTheRecord;\n"
   "609\t\t  // top level is reposible for deleting\n"
   "610\t\t  ThisStep.IsPointer = 1; \n"
   "611\t\t  ThisStep.DESD = pTheDESD;\n"
   "612\t\t  ThisStep.NoOfDESD = nNoOfTheDESD;\n"
   "613\t\t  ThisStep.Children = 0;\n"
   "614\t\t  ThisStep.CurrentChild = -1;\n"
   "615\t\n"
   "616\t\t  do { \n"
   "617\t\n"
   "618\t\t    memset( &NewStep, 0, sizeof( Step_t ) );\n"
   "619\t\n"
   "620\t\t    // execute \'ThisStep\' \n"
   "621\t\t    nResult = ThisStep.MthP->Process( ThisStep.P,\n"
   "622\t\t\t    ThisStep.Record, ThisStep.DESD, ThisStep.NoOfDESD, \n"
   "623\t\t\t    &NewStep.Record, &NewStep.DESD, &NewStep.NoOfDESD);\n"
   "624\t            if( nResult == DDP_RETURN_EXIT ) {\n"
   "625\t              // completely terminate network -> Pop and clean stack\n"
   "626\t              Rv = 1;\n"
   "627\t              break;\n"
   "628\t            }\n"
   "629\t\n"
   "630\t            if( nResult == DDP_RETURN_PERSIST ) {\n"
   "631\t              // push ThisStep back on the stack\n"
   "632\t              ThisStep.IsPersistent = 1;\n"
   "633\t\t      Top ++;\n"
   "634\t\t      if( Top == DA_Size( &ExecutionStack ) ) {\n"
   "635\t\t\t// no more space\n"
   "636\t\t\tCurr = (Step_t *)DA_AllocElement( &ExecutionStack );\n"
   "637\t\t      } else {\n"
   "638\t\t\tCurr = DA_Get( &ExecutionStack, Top, Step_t );\n"
   "639\t\t      }\n"
   "640\t\n"
   "641\t\t      memcpy( Curr, &ThisStep, sizeof( Step_t ) );\n"
   "642\t            }\n"
   "643\t\n"
   "644\t\t    // check if this processor has children\n"
   "645\t\t    NewStep.Children = ThisStep.MthP->GetChildren( ThisStep.P );\n"
   "646\t\n"
   "647\t\t    if( NewStep.Children ) {\n"
   "648\t\t      /* IMPORTANT\n"
   "649\t\t         if a processor changes the record and has children,\n"
   "650\t\t         the new record layout only applies to its children and \n"
   "651\t\t         not to the siblings of that processor\n"
   "652\t\n"
   "653\t\t         a kind of SPLITTER is created\n"
   "654\t\n"
   "655\t\n"
   "656\t                 a -- b -- c(CHANGES) -- d -- e ...\n"
   "657\t                 R1   R1   R1            R1   R1\n"
   "658\t                           |\n"
   "659\t                           ca -- cb -- cc\n"
   "660\t                           R2    R2    R2\n"
   "661\t\n"
   "662\t                 if this type of processor would return 
DDP_RETURN_STOP\n"
   "663\t                 none of its children will be processed but it\'s 
siblings would\n"
   "664\t              */\n"
   "665\t\n"
   "666\t              if( nResult != DDP_RETURN_STOP ) {\n"
   "667\t\t\t// must push \'NewStep\' on stack\n"
   "668\t\t\tNewStep.CurrentChild = -1;\n"
   "669\t\n"
   "670\t\t\tNewStep.P = ThisStep.P;\n"
   "671\t\t\tNewStep.MthP = ThisStep.MthP;\n"
   "672\t\n"
   "673\t\t\tif( ! NewStep.Record ) {\n"
   "674\t\t\t  // record not altered by processor -> restore old\n"
   "675\t\t\t  NewStep.Record = ThisStep.Record;\n"
   "676\t\t\t  NewStep.DESD = ThisStep.DESD;\n"
   "677\t\t\t  NewStep.NoOfDESD = ThisStep.NoOfDESD;\n"
   "678\t\t\t  NewStep.IsPointer = 1;\n"
   "679\t\t\t}\n"
   "680\t\n"
   "681\t\t\t// push it\n"
   "682\t\t\tTop ++;\n"
   "683\t\t\tif( Top == DA_Size( &ExecutionStack ) ) {\n"
   "684\t\t\t  // no more space\n"
   "685\t\t\t  Curr = (Step_t *)DA_AllocElement( &ExecutionStack );\n"
   "686\t\t\t} else {\n"
   "687\t\t\t  Curr = DA_Get( &ExecutionStack, Top, Step_t );\n"
   "688\t\t\t}\n"
   "689\t\n"
   "690\t\t\tmemcpy( Curr, &NewStep, sizeof( Step_t ) );\n"
   "691\t\t      } // continue with sibling\n"
   "692\t\t    } else {\n"
   "693\t\t      /* IMPORTANT\n"
   "694\t\t         if a processor changes the record and has no children,\n"
   "695\t\t         the new record layout applies from now on for all\n"
   "696\t\t         its slibings until someone else changes the record again\n"
   "697\t\n"
   "698\t\t         a kind of PIPE is created\n"
   "699\t\n"
   "700\t                 a -- b -- c(CHANGES) -- d -- e ..\n"
   "701\t                 R1   R1   R1            R2   R2\n"
   "702\t\n"
   "703\t                 if this typ"
<- "e of processor would return DDP_RETURN_STOP\n"
   "704\t                 none of its siblings will be processed\n"
   "705\t              */\n"
   "706\t\n"
   "707\t              if( nResult == DDP_RETURN_STOP ) {\n"
   "708\t                // pop current top item and continue \n"
   "709\t\t\tif( Top >=0 ) {\n"
   "710\t\t\t  Curr = DA_Get( &ExecutionStack, Top, Step_t );\n"
   "711\t\t\t  CleanItem( Curr, 0 );\n"
   "712\t\t\t  Top --;\n"
   "713\t                }\n"
   "714\t              } else {\n"
   "715\t\t\t// simple processor\n"
   "716\t\t\t// Optionally Store new record format\n"
   "717\t\t\t// returned DESD MUST be dynamic too !\n"
   "718\t\t\tif( NewStep.Record ) {\n"
   "719\t\t\t  // this item changes the record \n"
   "720\t\t\t  if( Top >= 0 ) {\n"
   "721\t\t\t    // SAVE the record\n"
   "722\t\t\t    Curr = DA_Get( &ExecutionStack, Top, Step_t );\n"
   "723\t\t\t    CleanItem( Curr, 0 );\n"
   "724\t\t\t    // store new info\n"
   "725\t\t\t    Curr->Record = NewStep.Record;\n"
   "726\t\t\t    Curr->IsPointer = 0;\n"
   "727\t\t\t    Curr->DESD = NewStep.DESD;\n"
   "728\t\t\t    Curr->NoOfDESD = NewStep.NoOfDESD;\n"
   "729\t\t\t  } // else Top element -> no parent\n"
   "730\t\t\t} // Does NOT modify record\n"
   "731\t\t      }\n"
   "732\t\t    }\n"
   "733\t\n"
   "734\t\n"
   "735\t\t    // fetch next step \n"
   "736\t\n"
   "737\t\t    // peek at top elemen\n"
   "738\t\t    if( Top >= 0 ) {\n"
   "739\t\t      // prepare new item to allow be allows processing \n"
   "740\t\t      Curr = DA_Get( &ExecutionStack, Top, Step_t );\n"
   "741\t\n"
   "742\t\t      if( DA_GetAndToNextValue( \n"
   "743\t\t\t  Curr->Children, &Curr->CurrentChild, &(ThisStep.P) ) ) {\n"
   "744\t\t\t// still children to be processed \n"
   "745\t\t\tThisStep.MthP = Object_GetContract( ThisStep.P, DDP_Processor ); 
\n"
   "746\t\t\tThisStep.CurrentChild = -1;\n"
   "747\t\t\tThisStep.Children = 0;\n"
   "748\t\t\tThisStep.Record = Curr->Record;\n"
   "749\t\t\tThisStep.IsPointer = 1;\n"
   "750\t\t\tThisStep.DESD = Curr->DESD;\n"
   "751\t\t\tThisStep.NoOfDESD = Curr->NoOfDESD;\n"
   "752\t\t      } else {\n"
   "753\t\t\t// list of children has be handled -> remove item\n"
   "754\t\t\tTop --;\n"
   "755\t\t\tif( ! Curr->IsPointer ) {\n"
   "756\t\t\t  // cleanup record\n"
   "757\t\t\t  Component_GetContract( DESD, DESD, 0 )->ResetValues(\n"
   "758\t\t\t\tCurr->Record,\n"
   "759\t\t\t\tCurr->DESD,\n"
   "760\t\t\t\tCurr->NoOfDESD );\n"
   "761\t\t\t  free( Curr->Record );\n"
   "762\t\t\t  free( Curr->DESD );\n"
   "763\t\t\t}\n"
   "764\t\t      }\n"
   "765\t\t    } // else stack empty\n"
   "766\t\n"
   "767\t          } while( Top >= 0  );\n"
   "768\t\n"
   "769\t          // while loop could have been exited with break\n"
   "770\t          DA_Dispose( &ExecutionStack, CleanItem, 0 );\n"
   "771\t\n"
   "772\t        } // no ROOT -> no DDP\n"
   "773\t\n"
   "774\t\tEVAPI_LEAVE(orcc_Process);\n"
   "775\t        return Rv;\n"
   "776\t}\n"
   "777\t\n"
   "778\t#include \"DDP_Manager.dee\"\n"
<- "(gdb) "
#  Reading file "DDP_Manager.c" from GDB...done.
#  Source "DDP_Manager.c" (from GDB) 778 lines, 23098 characters
-> "info source\n"
<- "Current source file is DDP_Manager.c\n"
   "Compilation directory is 
/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/\n"
   "Located in 
/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c\n"
   "Contains 778 lines.\n"
   "Source language is c.\n"
   "Compiled with stabs debugging format.\n"
   "(gdb) "
-> "output deleting\n"
<- "No symbol \"deleting\" in current context.\n"
   "(gdb) "
-> "next\n"
<- 
"\032\032/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c:589:15376:beg:0x4001b8ee\n"
   "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x080496d1 in main at DDP_Test.c:291\n"
   "\tbreakpoint already hit 1 time\n"
   "(gdb) "
#  Reading file 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c"...
#  Reading file 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c"...done.
#  File 
"/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c"
 778 lines, 23098 characters
-> "info source\n"
<- "Current source file is DDP_Manager.c\n"
   "Compilation directory is 
/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/\n"
   "Located in 
/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c\n"
   "Contains 778 lines.\n"
   "Source language is c.\n"
   "Compiled with stabs debugging format.\n"
   "(gdb) "
-> "next\n"
<- 
"\032\032/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c:591:15432:beg:0x4001b90e\n"
   "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x080496d1 in main at DDP_Test.c:291\n"
   "\tbreakpoint already hit 1 time\n"
   "(gdb) "
!  Segmentation fault
-> "\003"
+  /bin/sh -c 'gdb -x /tmp/fileoenWlc ddd core'
GNU gdb 5.0-with-shlib-patch(versie van wim)
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(no debugging symbols found)...
Core was generated by `ddd ./LINUX.arch/debug/DDP_Test'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/X11R6/lib/libXm.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXm.so.1
Reading symbols from /usr/X11R6/lib/libXp.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXp.so.6
Reading symbols from /usr/X11R6/lib/libXpm.so.4...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXpm.so.4
Reading symbols from /usr/X11R6/lib/libXaw.so.7...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXaw.so.7
Reading symbols from /usr/X11R6/lib/libXmu.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXmu.so.6
Reading symbols from /usr/X11R6/lib/libXext.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXext.so.6
Reading symbols from /usr/X11R6/lib/libXt.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXt.so.6
Reading symbols from /usr/X11R6/lib/libSM.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libSM.so.6
Reading symbols from /usr/X11R6/lib/libICE.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libICE.so.6
Reading symbols from /usr/X11R6/lib/libX11.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libX11.so.6
Reading symbols from /lib/libreadline.so.4...(no debugging symbols found)...
done.
Loaded symbols for /lib/libreadline.so.4
Reading symbols from /lib/libncurses.so.5...(no debugging symbols found)...
done.
Loaded symbols for /lib/libncurses.so.5
Reading symbols from /usr/lib/libelf.so.0...(no debugging symbols found)...
done.
Loaded symbols for /usr/lib/libelf.so.0
Reading symbols from /usr/lib/libstdc++-libc6.2-2.so.3...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libstdc++-libc6.2-2.so.3
Reading symbols from /lib/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_compat.so.2...(no debugging symbols found)...
done.
Loaded symbols for /lib/libnss_compat.so.2
Reading symbols from /lib/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libnss_files.so.2...(no debugging symbols found)...
done.
Loaded symbols for /lib/libnss_files.so.2
#0  0x8073ad6 in glob_pattern_p ()
#0  0x8073ad6 in glob_pattern_p ()
#1  0x823feb1 in ofstream::~ofstream ()
#2  0x822cd03 in glob_pattern_p ()
#3  0x822df5e in glob_pattern_p ()
#4  0x822e5d3 in glob_pattern_p ()
#5  0x821042b in glob_pattern_p ()
#6  0x820c5a5 in glob_pattern_p ()
#7  0x820c12c in glob_pattern_p ()
#8  0x80d69e7 in glob_pattern_p ()
#9  0x81d73ed in glob_pattern_p ()
#10 0x81d5ffa in glob_pattern_p ()
#11 0x807ac68 in glob_pattern_p ()
#12 0x807c208 in glob_pattern_p ()
#13 0x807c2cb in glob_pattern_p ()
#14 0x807a590 in glob_pattern_p ()
#15 0x807a36f in glob_pattern_p ()
#16 0x401f32e5 in _XtRemoveAllInputs () from /usr/X11R6/lib/libXt.so.6
#17 0x401f35a9 in XtAppNextEvent () from /usr/X11R6/lib/libXt.so.6
#18 0x8056a0b in strcpy ()
#19 0x811c445 in glob_pattern_p ()
#20 0x8055e23 in strcpy ()
#21 0x40404c1c in __libc_start_main () from /lib/libc.so.6
<- "Quit\n"
   "(gdb) "
-> "next\n"
<- 
"\032\032/net/disk2/u19809/projects/desc/Desc_Products/DDP/components/Common_T/DDP_Manager_C/DDP_Manager.c:593:15461:beg:0x4001b92f\n"
   "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x080496d1 in main at DDP_Test.c:291\n"
   "\tbreakpoint already hit 1 time\n"
   "(gdb) "
!  Segmentation fault
+  /bin/sh -c 'gdb -x /tmp/file9RjD7w ddd core'
GNU gdb 5.0-with-shlib-patch(versie van wim)
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(no debugging symbols found)...
Core was generated by `ddd ./LINUX.arch/debug/DDP_Test'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/X11R6/lib/libXm.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXm.so.1
Reading symbols from /usr/X11R6/lib/libXp.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXp.so.6
Reading symbols from /usr/X11R6/lib/libXpm.so.4...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXpm.so.4
Reading symbols from /usr/X11R6/lib/libXaw.so.7...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXaw.so.7
Reading symbols from /usr/X11R6/lib/libXmu.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXmu.so.6
Reading symbols from /usr/X11R6/lib/libXext.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXext.so.6
Reading symbols from /usr/X11R6/lib/libXt.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libXt.so.6
Reading symbols from /usr/X11R6/lib/libSM.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libSM.so.6
Reading symbols from /usr/X11R6/lib/libICE.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libICE.so.6
Reading symbols from /usr/X11R6/lib/libX11.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/X11R6/lib/libX11.so.6
Reading symbols from /lib/libreadline.so.4...(no debugging symbols found)...
done.
Loaded symbols for /lib/libreadline.so.4
Reading symbols from /lib/libncurses.so.5...(no debugging symbols found)...
done.
Loaded symbols for /lib/libncurses.so.5
Reading symbols from /usr/lib/libelf.so.0...(no debugging symbols found)...
done.
Loaded symbols for /usr/lib/libelf.so.0
Reading symbols from /usr/lib/libstdc++-libc6.2-2.so.3...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libstdc++-libc6.2-2.so.3
Reading symbols from /lib/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_compat.so.2...(no debugging symbols found)...
done.
Loaded symbols for /lib/libnss_compat.so.2
Reading symbols from /lib/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libnss_files.so.2...(no debugging symbols found)...
done.
Loaded symbols for /lib/libnss_files.so.2
#0  0x8073ad6 in glob_pattern_p ()
#0  0x8073ad6 in glob_pattern_p ()
#1  0x823feb1 in ofstream::~ofstream ()
#2  0x822cd03 in glob_pattern_p ()
#3  0x822df5e in glob_pattern_p ()
#4  0x822e5d3 in glob_pattern_p ()
#5  0x821042b in glob_pattern_p ()
#6  0x820c5a5 in glob_pattern_p ()
#7  0x820c12c in glob_pattern_p ()
#8  0x80d69e7 in glob_pattern_p ()
#9  0x81d73ed in glob_pattern_p ()
#10 0x81d5ffa in glob_pattern_p ()
#11 0x807ac68 in glob_pattern_p ()
#12 0x807c208 in glob_pattern_p ()
#13 0x807c2cb in glob_pattern_p ()
#14 0x807a590 in glob_pattern_p ()
#15 0x807a36f in glob_pattern_p ()
#16 0x401f32e5 in _XtRemoveAllInputs () from /usr/X11R6/lib/libXt.so.6
#17 0x401f35a9 in XtAppNextEvent () from /usr/X11R6/lib/libXt.so.6
#18 0x8056a0b in strcpy ()
#19 0x811c445 in glob_pattern_p ()
#20 0x8055e23 in strcpy ()
#21 0x40404c1c in __libc_start_main () from /lib/libc.so.6
#  Running GDB (pid 2721, tty /dev/pts/0)...Exit 0.
#  Saving history in "/home/u19809/.ddd/history"...
#  Saving history in "/home/u19809/.ddd/history"...done.
#  Thanks for using DDD 3.2.92!  (We apologize for the inconvenience.)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]