bug-ddd
[Top][All Lists]
Advanced

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

ddd bug: missing graph display update


From: Jörg Eckart
Subject: ddd bug: missing graph display update
Date: Thu, 07 Nov 2002 15:30:05 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4) Gecko/20011126 Netscape6/6.2.1

Hello ddd folks,

I would like to submit a bug concerning the graph display. Under some circumstances, the update of displayed objects is missing when stepping through the code, though they are not out of scope. It seems as if ddd does not read the display information passed by gdb properly, since when working with pure gdb on the shell displaying the corresponding variables works as expected. This can be seen in the ~/.ddd/log file as well. I tried to create a small source example where this error occurs. Once a code example shows the described behaviour, the effect is reproduceable, exactly at the same point in the program. But it is hard to generate an example program that shows the described behaviour, so don't bother about my strange code example. First my environment:

ddd --configuration:

GNU DDD 3.3.1 (i386-suse-linux)
Copyright (C) 1995-1999 Technische Universität Braunschweig, Germany.
Copyright (C) 1999-2001 Universität Passau, Germany.

Compiled with GCC 2.95.3 20010315 (SuSE), GNU libc 2.2
Requires X11R6, Xt11R6, Motif 2.1.30 (Motif Version 2.1.30)
Includes XPM 3.4.11, Athena Panner, DDD core
Built 2002-03-26 by root <root@D4.suse.de>.

gdb --version:

GNU gdb 5.1.1
Copyright 2002 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 "i386-suse-linux".

uname -a:

Linux ls12pc12 2.4.18-4GB #1 Wed Mar 27 13:57:05 UTC 2002 i686 unknown


Now the error description:

Compile the code example ddderr.c:

g++ ddderr.c -g -o ddderr

Now start ddd:

ddd ddderr

The intend in this example is to display some other code than being executed (here i8051_mkr.ir.c). The problem may have something to with it.

Now create 4 graph display objects:

graph display P0P7
graph display P0P7_
graph display P8P15
graph display P8P15_

Set an initial breakpoint:

break main

Now start debugging:

run

All four objects are displayed properly. Now the next step:

next

Here the problem occurs. The object P8P15_ is not displayed any more, though the display entry seems to be generated by gdb, as can be seen in the log file! Upon the next step the object is displayed again.

Why does ddd temporarily drop these display entries?

Please do not hesitate to contact me for further details.

Best regards,

Jörg Eckart

GNU DDD 3.3.1 (i386-suse-linux)
Copyright (C) 1995-1999 Technische Universität Braunschweig, Germany.
Copyright (C) 1999-2001 Universität Passau, Germany.

Compiled with GCC 2.95.3 20010315 (SuSE), GNU libc 2.2
Requires X11R6, Xt11R6, Motif 2.1.30 (Motif Version 2.1.30)
Includes XPM 3.4.11, Athena Panner, DDD core
Built 2002-03-26 by root <root@D4.suse.de>.
$  ddd ddderr
+  /bin/sh -c 'exec gdb -q -fullname '\''ddderr'\'''
#  Hello, world!
#  Opening session "1181d922d3000103667752200000012050014"...
#  Enabling core dumps...
#  Enabling core dumps...done.
#  Running GDB (pid 3506, tty /dev/pts/11)...
#  Current language: C/C++
#  Searching "vsllib/ddd.vsl"...
#  Trying "/home/ls12/eckart/.ddd/vsllib/ddd.vsl"
#  Trying "/usr/share/ddd-3.3.1/vsllib/ddd.vsl"
#  Searching "vsllib/ddd.vsl"..."/usr/share/ddd-3.3.1/vsllib/ddd.vsl".
#  Another DDD is running (pid 18356, host ls12pc10.cs.uni-dortmund.de, display 
ls12pc10:10.0)
<- "(gdb) "
-> "set prompt (gdb) \n"
#  Creating 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/"...
#  Creating 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/"...done.
#  Copying "/home/ls12/eckart/.ddd/init" to 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/init"...
#  Copying "/home/ls12/eckart/.ddd/init" to 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/init"...done.
#  Copying "/home/ls12/eckart/.ddd/history" to 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/history"...
#  Copying "/home/ls12/eckart/.ddd/history" to 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/history"...done.
#  Saving session in 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/init"...
#  Searching "ddd/Ddd"...
#  Trying "/home/ls12/eckart/.ddd/ddd/Ddd"
#  Trying "/usr/share/ddd-3.3.1/ddd/Ddd"
#  Searching "ddd/Ddd"..."/usr/share/ddd-3.3.1/ddd/Ddd".
#  Saving session in 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/init"...done.
<- "(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"
<- "32\t\n"
   "33\tT_P0P7 P0P7, P0P7_;\n"
   "34\tT_P8P15 P8P15, P8P15_;\n"
   "35\t\n"
   "36\tvoid f()\n"
   "37\t{\n"
   "38\t}\n"
   "39\t\n"
   "40\tint main()\n"
   "41\t{\n"
   "(gdb) "
-> "info line\n"
<- "Line 41 of \"ddderr.c\" starts at address 0x8048526 <main+6> and ends at 
0x8048530 <main+16>.\n"
   "\032\032/tmp/ddderr.c:41:411:beg:0x8048526\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.1.1\n"
   "Copyright 2002 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 \"i386-suse-linux\".\n"
   "(gdb) "
-> "pwd\n"
<- "Working directory /tmp.\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 
\"/tmp/.gdb_history\".\n"
   "(gdb) "
-> "show history size\n"
<- "The size of the command history is 256.\n"
   "(gdb) "
#  Reading file "/tmp/ddderr.c"...
#  Reading file "/tmp/ddderr.c"...done.
#  File "/tmp/ddderr.c" 54 lines, 670 characters
#  Setting buttons...
#  Setting buttons...done.
-> "info source\n"
<- "Current source file is ddderr.c\n"
   "Compilation directory is /tmp/\n"
   "Located in /tmp/ddderr.c\n"
   "Contains 54 lines.\n"
   "Source language is c.\n"
   "Compiled with stabs debugging format.\n"
   "(gdb) "
-> "info files\n"
<- "Symbols from \"/tmp/ddderr\".\n"
   "Local exec file:\n"
   "\t`/tmp/ddderr\', file type elf32-i386.\n"
   "\tEntry point: 0x8048420\n"
   "\t0x080480f4 - 0x08048107 is .interp\n"
   "\t0x08048108 - 0x08048128 is .note.ABI-tag\n"
   "\t0x08048128 - 0x08048174 is .hash\n"
   "\t0x08048174 - 0x08048254 is .dynsym\n"
   "\t0x08048254 - 0x08048348 is .dynstr\n"
   "\t0x08048348 - 0x08048364 is .gnu.version\n"
   "\t0x08048364 - 0x08048394 is .gnu.version_r\n"
   "\t0x08048394 - 0x0804839c is .rel.dyn\n"
   "\t0x0804839c - 0x080483b4 is .rel.plt\n"
   "\t0x080483b4 - 0x080483d9 is .init\n"
   "\t0x080483dc - 0x0804841c is .plt\n"
   "\t0x08048420 - 0x080485a0 is .text\n"
   "\t0x080485a0 - 0x080485bc is .fini\n"
   "\t0x080485bc - 0x080485c4 is .rodata\n"
   "\t0x080495c4 - 0x080495d4 is .data\n"
   "\t0x080495d4 - 0x0804962c is .eh_frame\n"
   "\t0x0804962c - 0x08049704 is .dynamic\n"
   "\t0x08049704 - 0x0804970c is .ctors\n"
   "\t0x0804970c - 0x08049714 is .dtors\n"
   "\t0x08049714 - 0x08049730 is .got\n"
   "\t0x08049740 - 0x080498e0 is .bss\n"
   "(gdb) "
-> "info program\n"
<- "The program being debugged is not being run.\n"
   "(gdb) "
-> "set confirm off\n"
<- "(gdb) "
-> "source /tmp/dddF3OZ7O\n"
<- "The target architecture is assumed to be i386\n"
   "Byte order is not selectable.The target endianness is set automatically 
(currently little endian)\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 \"/tmp/ddderr\".\n"
   "Local exec file:\n"
   "\t`/tmp/ddderr\', file type elf32-i386.\n"
   "\tEntry point: 0x8048420\n"
   "\t0x080480f4 - 0x08048107 is .interp\n"
   "\t0x08048108 - 0x08048128 is .note.ABI-tag\n"
   "\t0x08048128 - 0x08048174 is .hash\n"
   "\t0x08048174 - 0x08048254 is .dynsym\n"
   "\t0x08048254 - 0x08048348 is .dynstr\n"
   "\t0x08048348 - 0x08048364 is .gnu.version\n"
   "\t0x08048364 - 0x08048394 is .gnu.version_r\n"
   "\t0x08048394 - 0x0804839c is .rel.dyn\n"
   "\t0x0804839c - 0x080483b4 is .rel.plt\n"
   "\t0x080483b4 - 0x080483d9 is .init\n"
   "\t0x080483dc - 0x0804841c is .plt\n"
   "\t0x08048420 - 0x080485a0 is .text\n"
   "\t0x080485a0 - 0x080485bc is .fini\n"
   "\t0x080485bc - 0x080485c4 is .rodata\n"
   "\t0x080495c4 - 0x080495d4 is .data\n"
   "\t0x080495d4 - 0x0804962c is .eh_frame\n"
   "\t0x0804962c - 0x08049704 is .dynamic\n"
   "\t0x08049704 - 0x0804970c is .ctors\n"
   "\t0x0804970c - 0x08049714 is .dtors\n"
   "\t0x08049714 - 0x08049730 is .got\n"
   "\t0x08049740 - 0x080498e0 is .bss\n"
   "(gdb) "
-> "info program\n"
<- "The program being debugged is not being run.\n"
   "(gdb) "
#  Opening session "1181d922d3000103667752200000012050014"...done.
#  Welcome to DDD 3.3.1 "Blue Gnu" (i386-suse-linux)
-> "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) "
-> "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 pp32rebuild\n"
<- "User-defined.\n"
   "(gdb) "
-> "help continue\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 pp32next\n"
<- "User-defined.\n"
   "(gdb) "
-> "help pp32stepover\n"
<- "User-defined.\n"
   "(gdb) "
-> "frame\n"
<- "No stack.\n"
   "(gdb) "
-> "display P0P7\n"
<- "(gdb) "
-> "display\n"
<- "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "(gdb) "
#  Creating display...
#  Creating display...done.
#  Display 1: P0P7 (enabled)
#  Display 1: P0P7 (enabled)
-> "frame\n"
<- "No stack.\n"
   "(gdb) "
-> "display P0P7_\n"
<- "(gdb) "
-> "display\n"
<- "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "(gdb) "
#  Creating display...
#  Creating display...done.
#  Display 2: P0P7_ (enabled)
#  Display 2: P0P7_ (enabled)
-> "frame\n"
<- "No stack.\n"
   "(gdb) "
-> "display P8P15\n"
<- "(gdb) "
-> "display\n"
<- "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "(gdb) "
#  Creating display...
#  Creating display...done.
#  Display 3: P8P15 (enabled)
#  Display 3: P8P15 (enabled)
-> "frame\n"
<- "No stack.\n"
   "(gdb) "
-> "display P8P15_\n"
<- "(gdb) "
-> "display\n"
<- "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "(gdb) "
#  Creating display...
#  Creating display...done.
#  Display 4: P8P15_ (enabled)
#  Display 4: P8P15_ (enabled)
-> "b main\n"
<- "Breakpoint 1 at 0x8048526: file ddderr.c, line 41.\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
<- "(gdb) "
#  Display 4: P8P15_ (enabled)
-> "set environment TERM dumb\n"
<- "(gdb) "
-> "r\n"
<- "\n"
<- "Breakpoint 1, main () at ddderr.c:41\n"
<- "\032\032/tmp/ddderr.c:41:411:beg:0x8048526\n"
<- "4: P8P15_ = {P8 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P9 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P10 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P11 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P12 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P13 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P14 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P15 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- "}"
<- "\n"
<- "3: P8P15 = {P8 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P9 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P10 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P11 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P12 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P13 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P14 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P15 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- "}"
<- "\n"
<- "2: P0P7_ = {P0 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P1 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P2 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P3 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P4 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P5 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P6 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P7 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- "}"
<- "\n"
<- "1: P0P7 = {P0 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P1 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P2 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P3 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P4 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P5 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P6 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- ", P7 = {data = 0"
<- ", ctrl = 0"
<- "}"
<- "}"
<- "\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
<- "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
<- "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Updating displays...
#  Updating displays...done.
#  Display 4: P8P15_ (enabled)
-> "n\n"
<- "\032\032/tmp/i8051_mkr.ir.c:4:24:beg:0x8048530\n"
   "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 1, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Reading file "/tmp/i8051_mkr.ir.c"...
#  Reading file "/tmp/i8051_mkr.ir.c"...done.
#  File "/tmp/i8051_mkr.ir.c" 1963 lines, 33840 characters
#  Updating displays...
#  Updating displays...done.
-> "info source\n"
<- "Current source file is i8051_mkr.ir.c\n"
   "Compilation directory is /tmp/\n"
   "Located in /tmp/i8051_mkr.ir.c\n"
   "Contains 1963 lines.\n"
   "Source language is c.\n"
   "Compiled with unknown debugging format.\n"
   "(gdb) "
-> "n\n"
<- "\032\032/tmp/i8051_mkr.ir.c:5:74:beg:0x8048535\n"
   "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 1, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Updating displays...
#  Updating displays...done.
-> "n\n"
<- "\032\032/tmp/i8051_mkr.ir.c:6:113:beg:0x804853f\n"
   "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 2, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Updating displays...
#  Updating displays...done.
-> "n\n"
<- "\032\032/tmp/i8051_mkr.ir.c:7:118:beg:0x8048544\n"
   "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 2, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Updating displays...
#  Updating displays...done.
-> "n\n"
<- "\032\032/tmp/i8051_mkr.ir.c:8:119:beg:0x804854e\n"
   "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 3, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Updating displays...
#  Updating displays...done.
-> "n\n"
<- "\032\032/tmp/i8051_mkr.ir.c:9:120:beg:0x8048557\n"
   "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 3, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Updating displays...
#  Updating displays...done.
-> "n\n"
<- "0x400b79ed in __libc_start_main () from /lib/libc.so.6\n"
   "4: P8P15_ = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "3: P8P15 = {P8 = {data = 0, ctrl = 0}, P9 = {data = 0, ctrl = 0}, P10 = 
{data = 0, ctrl = 0}, P11 = {data = 0, ctrl = 0}, P12 = {data = 0, ctrl = 0}, 
P13 = {data = 0, ctrl = 0}, P14 = {data = 0, ctrl = 0}, P15 = {data = 0, ctrl = 
0}}\n"
   "2: P0P7_ = {P0 = {data = 0, ctrl = 0}, P1 = {data = 0, ctrl = 0}, P2 = 
{data = 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 
= {data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
   "1: P0P7 = {P0 = {data = 0, ctrl = 0}, P1 = {data = 3, ctrl = 0}, P2 = {data 
= 0, ctrl = 0}, P3 = {data = 0, ctrl = 0}, P4 = {data = 0, ctrl = 0}, P5 = 
{data = 0, ctrl = 0}, P6 = {data = 0, ctrl = 0}, P7 = {data = 0, ctrl = 0}}\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x08048526 in main at ddderr.c:41\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Updating displays...
#  Updating displays...done.
-> "q\n"
#  Running GDB (pid 3506, tty /dev/pts/11)...Exit 0.
#  Saving history in 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/history"...
#  Saving history in 
"/home/ls12/eckart/.ddd/sessions/1181d922d3000103667752200000012050014/history"...done.
#  Thanks for using DDD 3.3.1!
struct Port
{
  int data;
  int ctrl;
};

Port P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15;

typedef struct T_P0P7
{
  Port P0;
  Port P1;
  Port P2;
  Port P3;
  Port P4;
  Port P5;
  Port P6;
  Port P7;
};

typedef struct T_P8P15
{
  Port P8;
  Port P9;
  Port P10;
  Port P11;
  Port P12;
  Port P13;
  Port P14;
  Port P15;
};

T_P0P7 P0P7, P0P7_;
T_P8P15 P8P15, P8P15_;

void f()
{
}

int main()
{
#line 3 "i8051_mkr.ir.c" 
  P0P7.P1.data=1;
#line 4 "i8051_mkr.ir.c" 
  f();
#line 5 "i8051_mkr.ir.c" 
  P0P7.P1.data=2;
#line 6 "i8051_mkr.ir.c" 
  f();
#line 7 "i8051_mkr.ir.c" 
  P0P7.P1.data=3;
#line 8 "i8051_mkr.ir.c" 
  f();
}
main()
{
  P1.data=1;
  T;
  P1.data=2;
  T;
  P1.data=3;
  T;
}

reply via email to

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