GNU DDD 3.3.12 (x86_64-pc-linux-gnu)
Copyright (C) 1995-1999 Technische Universität Braunschweig, Germany.
Copyright (C) 1999-2001 Universität Passau, Germany.
Copyright (C) 2001 Universität des Saarlandes, Germany.
Copyright (C) 2001-2009 Free Software Foundation, Inc.
Compiled with GCC 4.8.1, GNU libc 2.17
Requires X11R6, Xt11R6, Motif 2.3.4 (Motif Version 2.3.4)
Includes XPM 3.4.11, Athena Panner (7000002L), DDD core
Built 2013-07-07 by Daniel Schepler
.
$ ddd ./main
+ /bin/sh -c 'exec gdb -q -fullname '\''./main'\'''
# Hello, world!
# Opening session ".ddd"...
# Running GDB (pid 6456, tty /dev/pts/6)...
# Current language: C/C++
# File: waiting until GDB gets ready
# Searching "vsllib/ddd.vsl"...
# Trying "/home/lash/.ddd/vsllib/ddd.vsl"
# Trying "/usr/share/ddd/vsllib/ddd.vsl"
# Searching "vsllib/ddd.vsl"..."/usr/share/ddd/vsllib/ddd.vsl".
# Saving session in "/home/lash/.ddd/sessions/.ddd/init"...
# Searching "ddd/Ddd"...
# Trying "/home/lash/.ddd/ddd/Ddd"
# Trying "/usr/share/ddd/ddd/Ddd"
# Searching "ddd/Ddd"..."/usr/share/ddd/ddd/Ddd".
# Saving session in "/home/lash/.ddd/sessions/.ddd/init"...done.
2015.05.03 15:55:34
<- "Reading symbols from ./main..."
2015.05.03 15:55:34
<- "done.\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "set prompt (gdb) \n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "set height 0\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "set width 0\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "set annotate 1\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> " set verbose off\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info line\n"
2015.05.03 15:55:34
<- "No line number information available.\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "list\n"
2015.05.03 15:55:34
<- "27\t#include \n"
2015.05.03 15:55:34
<- "28\t#include \n"
"29\t#include \"raytoedge.h\"\n"
"30\t\n"
"31\t#define SCREEN_X 1920\n"
"32\t#define SCREEN_Y 893\n"
"33\t\n"
"34\tint main(int argc, char **argv)\n"
"35\t{\n"
"36\t\tsrand(time(NULL));\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info line\n"
2015.05.03 15:55:34
<- "Line 36 of \"main.c\" starts at address 0x4007ec and ends at 0x4007fd .\n"
"\032\032/home/lash/programming/c/main.c:36:984:beg:0x4007ec\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "output 4711\n"
2015.05.03 15:55:34
<- "4711"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "show language\n"
2015.05.03 15:55:34
<- "The current source language is \"auto; currently c\".\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "show version\n"
2015.05.03 15:55:34
<- "GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1\n"
"Copyright (C) 2014 Free Software Foundation, Inc.\n"
2015.05.03 15:55:34
<- "License GPLv3+: GNU GPL version 3 or later \n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law. Type \"show copying\"\n"
"and \"show warranty\" for details.\n"
"This GDB was configured as \"x86_64-linux-gnu\".\n"
"Type \"show configuration\" for configuration details.\n"
"For bug reporting instructions, please see:\n"
".\n"
"Find the GDB manual and other documentation resources online at:\n"
".\n"
2015.05.03 15:55:34
<- "For help, type \"help\".\n"
"Type \"apropos word\" to search for commands related to \"word\".\n"
"(gdb) "
2015.05.03 15:55:34
-> "pwd\n"
2015.05.03 15:55:34
<- "Working directory /home/lash/programming/c.\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info breakpoints\n"
2015.05.03 15:55:34
<- "No breakpoints or watchpoints.\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "show history filename\n"
2015.05.03 15:55:34
<- "The filename in which to record the command history is \"/home/lash/programming/c/.gdb_history\".\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "show history size\n"
2015.05.03 15:55:34
<- "The size of the command history is 256.\n"
2015.05.03 15:55:34
<- "(gdb) "
# Reading file "/home/lash/programming/c/main.c"...
# Reading file "/home/lash/programming/c/main.c"...done.
# File "/home/lash/programming/c/main.c" 51 lines, 1520 characters
2015.05.03 15:55:34
-> "set confirm off\n"
# Setting buttons...
# Setting buttons...done.
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "file /home/lash/programming/c/main\n"
# Disassembling location 0x4007ec to 0x4008ec...
2015.05.03 15:55:34
<- "Reading symbols from /home/lash/programming/c/main...done.\n"
"(gdb) "
2015.05.03 15:55:34
-> "info line\n"
2015.05.03 15:55:34
<- "No line number information available.\n"
"(gdb) "
2015.05.03 15:55:34
-> "list\n"
2015.05.03 15:55:34
<- "27\t#include \n"
"28\t#include \n"
"29\t#include \"raytoedge.h\"\n"
"30\t\n"
"31\t#define SCREEN_X 1920\n"
"32\t#define SCREEN_Y 893\n"
"33\t\n"
"34\tint main(int argc, char **argv)\n"
"35\t{\n"
"36\t\tsrand(time(NULL));\n"
"(gdb) "
2015.05.03 15:55:34
-> "info line\n"
2015.05.03 15:55:34
<- "Line 36 of \"main.c\" starts at address 0x4007ec and ends at 0x4007fd .\n"
"\032\032/home/lash/programming/c/main.c:36:984:beg:0x4007ec\n"
"(gdb) "
2015.05.03 15:55:34
-> "info breakpoints\n"
2015.05.03 15:55:34
<- "No breakpoints or watchpoints.\n"
"(gdb) "
2015.05.03 15:55:34
-> "display\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info display\n"
2015.05.03 15:55:34
<- "There are no auto-display expressions now.\n"
"(gdb) "
# Reading file "/home/lash/programming/c/main.c"...
# Reading file "/home/lash/programming/c/main.c"...done.
# File "/home/lash/programming/c/main.c" 51 lines, 1520 characters
2015.05.03 15:55:34
-> "disassemble 0x4007ec,0x4008ec\n"
2015.05.03 15:55:34
<- "Dump of assembler code from 0x4007ec to 0x4008ec:\n"
" 0x00000000004007ec :\tmov $0x0,%edi\n"
" 0x00000000004007f1 :\tcallq 0x4006c0 \n"
" 0x00000000004007f6 :\tmov %eax,%edi\n"
" 0x00000000004007f8 :\tcallq 0x4006a0 \n"
" 0x00000000004007fd :\tmov -0x40(%rbp),%rax\n"
" 0x0000000000400801 :\tadd $0x8,%rax\n"
" 0x0000000000400805 :\tmov (%rax),%rax\n"
" 0x0000000000400808 :\tmov %rax,%rdi\n"
" 0x000000000040080b :\tcallq 0x400650 \n"
" 0x0000000000400810 :\tcvttsd2si %xmm0,%eax\n"
" 0x0000000000400814 :\tmov %eax,-0x28(%rbp)\n"
" 0x0000000000400817 :\tmov -0x40(%rbp),%rax\n"
" 0x000000000040081b :\tadd $0x10,%rax\n"
" 0x000000000040081f :\tmov (%rax),%rax\n"
" 0x0000000000400822 :\tmov %rax,%rdi\n"
" 0x0000000000400825 :\tcallq 0x400650 \n"
" 0x000000000040082a :\tcvttsd2si %xmm0,%eax\n"
" 0x000000000040082e :\tmov %eax,-0x24(%rbp)\n"
" 0x0000000000400831 :\tcallq 0x4006e0 \n"
" 0x0000000000400836 :\tcvtsi2sd %eax,%xmm0\n"
" 0x000000000040083a :\tmovsd 0x5a6(%rip),%xmm1 # 0x400de8\n"
" 0x0000000000400842 :\tdivsd %xmm1,%xmm0\n"
" 0x0000000000400846 :\tmovsd 0x5a2(%rip),%xmm1 # 0x400df0\n"
" 0x000000000040084e :\tmulsd %xmm1,%xmm0\n"
" 0x0000000000400852 :\tmovsd %xmm0,-0x20(%rbp)\n"
" 0x0000000000400857 :\tcmpl $0x3,-0x34(%rbp)\n"
" 0x000000000040085b :\tjle 0x40087d \n"
" 0x000000000040085d :\tmov -0x40(%rbp),%rax\n"
" 0x0000000000400861 :\tadd $0x18,%rax\n"
" 0x0000000000400865 :\tmov (%rax),%rax\n"
" 0x0000000000400868 :\tmov %rax,%rdi\n"
" 0x000000000040086b :\tcallq 0x400650 \n"
" 0x0000000000400870 :\tmovsd %xmm0,-0x48(%rbp)\n"
" 0x0000000000400875 :\tmov -0x48(%rbp),%rax\n"
" 0x0000000000400879 :\tmov %rax,-0x20(%rbp)\n"
" 0x000000000040087d :\tlea -0x10(%rbp),%rsi\n"
" 0x0000000000400881 :\tmov -0x24(%rbp),%ecx\n"
" 0x0000000000400884 :\tmov -0x28(%rbp),%edx\n"
" 0x0000000000400887 :\tmov -0x20(%rbp),%rax\n"
" 0x000000000040088b :\tmov %rsi,%r8\n"
" 0x000000000040088e :\tmov $0x37d,%esi\n"
" 0x0000000000400893 :\tmov $0x780,%edi\n"
" 0x0000000000400898 :\tmov %rax,-0x48(%rbp)\n"
" 0x000000000040089c :\tmovsd -0x48(%rbp),%xmm0\n"
" 0x00000000004008a1 :\tcallq 0x40091e \n"
" 0x00000000004008a6 :\tmov %rax,-0x18(%rbp)\n"
" 0x00000000004008aa :\tmovsd -0x20(%rbp),%xmm1\n"
" 0x00000000004008af :\tmovsd 0x541(%rip),%xmm0 # 0x400df8\n"
" 0x00000000004008b7 :\tmulsd %xmm1,%xmm0\n"
" 0x00000000004008bb :\tmovsd 0x53d(%rip),%xmm1 # 0x400e00\n"
" 0x00000000004008c3 :\tdivsd %xmm1,%xmm0\n"
" 0x00000000004008c7 :\tmovapd %xmm0,%xmm1\n"
" 0x00000000004008cb :\tmov -0x18(%rbp),%rax\n"
" 0x00000000004008cf :\tmovsd (%rax),%xmm2\n"
" 0x00000000004008d3 :\tmovsd 0x52d(%rip),%xmm0 # 0x400e08\n"
" 0x00000000004008db :\taddsd %xmm2,%xmm0\n"
" 0x00000000004008df :\tmov -0x18(%rbp),%rax\n"
" 0x00000000004008e3 :\tmov (%rax),%rax\n"
" 0x00000000004008e6 :\tmov -0x24(%rbp),%edx\n"
" 0x00000000004008e9 :\tmov -0x28(%rbp),%esi\n"
"End of assembler dump.\n"
"(gdb) "
# Disassembling location 0x4007ec to 0x4008ec...done.
2015.05.03 15:55:34
-> "x /i 0x4007ec\n"
2015.05.03 15:55:34
<- " 0x4007ec :\tmov $0x0,%edi\n"
"(gdb) "
2015.05.03 15:55:34
-> "x /i 0x4008dd\n"
2015.05.03 15:55:34
<- " 0x4008dd :\tpop %rax\n"
"(gdb) "
# Disassembling location 0x4007ec to 0x4008ec...
2015.05.03 15:55:34
-> "disassemble 0x4007ec,0x4008ec\n"
2015.05.03 15:55:34
<- "Dump of assembler code from 0x4007ec to 0x4008ec:\n"
" 0x00000000004007ec :\tmov $0x0,%edi\n"
" 0x00000000004007f1 :\tcallq 0x4006c0 \n"
" 0x00000000004007f6 :\tmov %eax,%edi\n"
" 0x00000000004007f8 :\tcallq 0x4006a0 \n"
" 0x00000000004007fd :\tmov -0x40(%rbp),%rax\n"
" 0x0000000000400801 :\tadd $0x8,%rax\n"
" 0x0000000000400805 :\tmov (%rax),%rax\n"
" 0x0000000000400808 :\tmov %rax,%rdi\n"
" 0x000000000040080b :\tcallq 0x400650 \n"
" 0x0000000000400810 :\tcvttsd2si %xmm0,%eax\n"
" 0x0000000000400814 :\tmov %eax,-0x28(%rbp)\n"
" 0x0000000000400817 :\tmov -0x40(%rbp),%rax\n"
" 0x000000000040081b :\tadd $0x10,%rax\n"
" 0x000000000040081f :\tmov (%rax),%rax\n"
" 0x0000000000400822 :\tmov %rax,%rdi\n"
" 0x0000000000400825 :\tcallq 0x400650 \n"
" 0x000000000040082a :\tcvttsd2si %xmm0,%eax\n"
" 0x000000000040082e :\tmov %eax,-0x24(%rbp)\n"
" 0x0000000000400831 :\tcallq 0x4006e0 \n"
" 0x0000000000400836 :\tcvtsi2sd %eax,%xmm0\n"
" 0x000000000040083a :\tmovsd 0x5a6(%rip),%xmm1 # 0x400de8\n"
" 0x0000000000400842 :\tdivsd %xmm1,%xmm0\n"
" 0x0000000000400846 :\tmovsd 0x5a2(%rip),%xmm1 # 0x400df0\n"
" 0x000000000040084e :\tmulsd %xmm1,%xmm0\n"
" 0x0000000000400852 :\tmovsd %xmm0,-0x20(%rbp)\n"
" 0x0000000000400857 :\tcmpl $0x3,-0x34(%rbp)\n"
" 0x000000000040085b :\tjle 0x40087d \n"
" 0x000000000040085d :\tmov -0x40(%rbp),%rax\n"
" 0x0000000000400861 :\tadd $0x18,%rax\n"
" 0x0000000000400865 :\tmov (%rax),%rax\n"
" 0x0000000000400868 :\tmov %rax,%rdi\n"
" 0x000000000040086b :\tcallq 0x400650 \n"
" 0x0000000000400870 :\tmovsd %xmm0,-0x48(%rbp)\n"
" 0x0000000000400875 :\tmov -0x48(%rbp),%rax\n"
" 0x0000000000400879 :\tmov %rax,-0x20(%rbp)\n"
" 0x000000000040087d :\tlea -0x10(%rbp),%rsi\n"
" 0x0000000000400881 :\tmov -0x24(%rbp),%ecx\n"
" 0x0000000000400884 :\tmov -0x28(%rbp),%edx\n"
" 0x0000000000400887 :\tmov -0x20(%rbp),%rax\n"
" 0x000000000040088b :\tmov %rsi,%r8\n"
" 0x000000000040088e :\tmov $0x37d,%esi\n"
" 0x0000000000400893 :\tmov $0x780,%edi\n"
" 0x0000000000400898 :\tmov %rax,-0x48(%rbp)\n"
" 0x000000000040089c :\tmovsd -0x48(%rbp),%xmm0\n"
" 0x00000000004008a1 :\tcallq 0x40091e \n"
" 0x00000000004008a6 :\tmov %rax,-0x18(%rbp)\n"
" 0x00000000004008aa :\tmovsd -0x20(%rbp),%xmm1\n"
" 0x00000000004008af :\tmovsd 0x541(%rip),%xmm0 # 0x400df8\n"
" 0x00000000004008b7 :\tmulsd %xmm1,%xmm0\n"
" 0x00000000004008bb :\tmovsd 0x53d(%rip),%xmm1 # 0x400e00\n"
" 0x00000000004008c3 :\tdivsd %xmm1,%xmm0\n"
" 0x00000000004008c7 :\tmovapd %xmm0,%xmm1\n"
" 0x00000000004008cb :\tmov -0x18(%rbp),%rax\n"
" 0x00000000004008cf :\tmovsd (%rax),%xmm2\n"
" 0x00000000004008d3 :\tmovsd 0x52d(%rip),%xmm0 # 0x400e08\n"
" 0x00000000004008db :\taddsd %xmm2,%xmm0\n"
" 0x00000000004008df :\tmov -0x18(%rbp),%rax\n"
" 0x00000000004008e3 :\tmov (%rax),%rax\n"
" 0x00000000004008e6 :\tmov -0x24(%rbp),%edx\n"
" 0x00000000004008e9 :\tmov -0x28(%rbp),%esi\n"
"End of assembler dump.\n"
"(gdb) "
# Disassembling location 0x4007ec to 0x4008ec...done.
2015.05.03 15:55:34
-> "info source\n"
2015.05.03 15:55:34
<- "Current source file is main.c\n"
"Compilation directory is /home/lash/programming/c\n"
"Located in /home/lash/programming/c/main.c\n"
"Contains 51 lines.\n"
"Source language is c.\n"
"Compiled with DWARF 2 debugging format.\n"
"Does not include preprocessor macro info.\n"
"(gdb) "
2015.05.03 15:55:34
-> "info files\n"
2015.05.03 15:55:34
<- "Symbols from \"/home/lash/programming/c/main\".\n"
"Local exec file:\n"
"\t`/home/lash/programming/c/main\', file type elf64-x86-64.\n"
"\tEntry point: 0x4006f0\n"
"\t0x0000000000400238 - 0x0000000000400254 is .interp\n"
"\t0x0000000000400254 - 0x0000000000400274 is .note.ABI-tag\n"
"\t0x0000000000400274 - 0x0000000000400298 is .note.gnu.build-id\n"
"\t0x0000000000400298 - 0x00000000004002b4 is .gnu.hash\n"
"\t0x00000000004002b8 - 0x0000000000400408 is .dynsym\n"
"\t0x0000000000400408 - 0x00000000004004b8 is .dynstr\n"
"\t0x00000000004004b8 - 0x00000000004004d4 is .gnu.version\n"
"\t0x00000000004004d8 - 0x0000000000400518 is .gnu.version_r\n"
"\t0x0000000000400518 - 0x0000000000400530 is .rela.dyn\n"
"\t0x0000000000400530 - 0x0000000000400620 is .rela.plt\n"
"\t0x0000000000400620 - 0x000000000040063a is .init\n"
"\t0x0000000000400640 - 0x00000000004006f0 is .plt\n"
"\t0x00000000004006f0 - 0x0000000000400d92 is .text\n"
"\t0x0000000000400d94 - 0x0000000000400d9d is .fini\n"
"\t0x0000000000400da0 - 0x0000000000400e30 is .rodata\n"
"\t0x0000000000400e30 - 0x0000000000400e74 is .eh_frame_hdr\n"
"\t0x0000000000400e78 - 0x0000000000400fb4 is .eh_frame\n"
"\t0x0000000000601e00 - 0x0000000000601e08 is .init_array\n"
"\t0x0000000000601e08 - 0x0000000000601e10 is .fini_array\n"
"\t0x0000000000601e10 - 0x0000000000601e18 is .jcr\n"
"\t0x0000000000601e18 - 0x0000000000601ff8 is .dynamic\n"
"\t0x0000000000601ff8 - 0x0000000000602000 is .got\n"
"\t0x0000000000602000 - 0x0000000000602068 is .got.plt\n"
"\t0x0000000000602068 - 0x0000000000602078 is .data\n"
"\t0x0000000000602078 - 0x0000000000602080 is .bss\n"
"(gdb) "
2015.05.03 15:55:34
-> "info program\n"
2015.05.03 15:55:34
<- "The program being debugged is not being run.\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "source /tmp/dddungX91\n"
2015.05.03 15:55:34
<- "Line 36 of \"main.c\" starts at address 0x4007ec and ends at 0x4007fd .\n"
2015.05.03 15:55:34
<- "\032\032/home/lash/programming/c/main.c:36:984:beg:0x4007ec\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info breakpoints\n"
2015.05.03 15:55:34
<- "No breakpoints or watchpoints.\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "# reset\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info breakpoints\n"
2015.05.03 15:55:34
<- "No breakpoints or watchpoints.\n"
"(gdb) "
2015.05.03 15:55:34
-> "display\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info display\n"
2015.05.03 15:55:34
<- "There are no auto-display expressions now.\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "set environment TERM dumb\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info files\n"
2015.05.03 15:55:34
<- "Symbols from \"/home/lash/programming/c/main\".\n"
2015.05.03 15:55:34
<- "Local exec file:\n"
"\t`/home/lash/programming/c/main\', file type elf64-x86-64.\n"
2015.05.03 15:55:34
<- "\tEntry point: 0x4006f0\n"
"\t0x0000000000400238 - 0x0000000000400254 is .interp\n"
"\t0x0000000000400254 - 0x0000000000400274 is .note.ABI-tag\n"
"\t0x0000000000400274 - 0x0000000000400298 is .note.gnu.build-id\n"
2015.05.03 15:55:34
<- "\t0x0000000000400298 - 0x00000000004002b4 is .gnu.hash\n"
"\t0x00000000004002b8 - 0x0000000000400408 is .dynsym\n"
"\t0x0000000000400408 - 0x00000000004004b8 is .dynstr\n"
"\t0x00000000004004b8 - 0x00000000004004d4 is .gnu.version\n"
"\t0x00000000004004d8 - 0x0000000000400518 is .gnu.version_r\n"
"\t0x0000000000400518 - 0x0000000000400530 is .rela.dyn\n"
2015.05.03 15:55:34
<- "\t0x0000000000400530 - 0x0000000000400620 is .rela.plt\n"
"\t0x0000000000400620 - 0x000000000040063a is .init\n"
"\t0x0000000000400640 - 0x00000000004006f0 is .plt\n"
"\t0x00000000004006f0 - 0x0000000000400d92 is .text\n"
"\t0x0000000000400d94 - 0x0000000000400d9d is .fini\n"
"\t0x0000000000400da0 - 0x0000000000400e30 is .rodata\n"
"\t0x0000000000400e30 - 0x0000000000400e74 is .eh_frame_hdr\n"
"\t0x0000000000400e78 - 0x0000000000400fb4 is .eh_frame\n"
"\t0x0000000000601e00 - 0x0000000000601e08 is .init_array\n"
2015.05.03 15:55:34
<- "\t0x0000000000601e08 - 0x0000000000601e10 is .fini_array\n"
"\t0x0000000000601e10 - 0x0000000000601e18 is .jcr\n"
"\t0x0000000000601e18 - 0x0000000000601ff8 is .dynamic\n"
"\t0x0000000000601ff8 - 0x0000000000602000 is .got\n"
"\t0x0000000000602000 - 0x0000000000602068 is .got.plt\n"
"\t0x0000000000602068 - 0x0000000000602078 is .data\n"
"\t0x0000000000602078 - 0x0000000000602080 is .bss\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "info program\n"
2015.05.03 15:55:34
<- "The program being debugged is not being run.\n"
2015.05.03 15:55:34
<- "(gdb) "
# Opening session ".ddd"...done.
# Welcome to DDD 3.3.12 "Dale Head" (x86_64-pc-linux-gnu)
# Current session is "245db11b3-e814-4e4e-87d9-dc93e3d5c3c7".
2015.05.03 15:55:34
-> "help detach\n"
2015.05.03 15:55:34
<- "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"
"\n"
"List of detach subcommands:\n"
"\n"
"detach checkpoint -- Detach from a checkpoint (experimental)\n"
"detach inferiors -- Detach from inferior ID (or list of IDS)\n"
"\n"
2015.05.03 15:55:34
<- "Type \"help detach\" followed by detach subcommand name for full documentation.\n"
"Type \"apropos word\" to search for commands related to \"word\".\n"
"Command name abbreviations are allowed if unambiguous.\n"
"(gdb) "
2015.05.03 15:55:34
-> "help run\n"
2015.05.03 15:55:34
<- "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"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "help step\n"
2015.05.03 15:55:34
<- "Step program until it reaches a different source line.\n"
"Usage: step [N]\n"
"Argument N means step N times (or till program stops for another reason).\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "help stepi\n"
2015.05.03 15:55:34
<- "Step one instruction exactly.\n"
"Usage: stepi [N]\n"
"Argument N means step N times (or till program stops for another reason).\n"
2015.05.03 15:55:34
<- "(gdb) "
2015.05.03 15:55:34
-> "help next\n"
2015.05.03 15:55:34
<- "Step program, proceeding through subroutine calls.\n"
"Usage: next [N]\n"
"Unlike \"step\", if the current source line calls a subroutine,\n"
"this command does not enter the subroutine, but instead steps over\n"
"the call, in effect treating it as a single source line.\n"
"(gdb) "
2015.05.03 15:55:34
-> "help nexti\n"
2015.05.03 15:55:34
<- "Step one instruction, but proceed through subroutine calls.\n"
"Usage: nexti [N]\n"
"Argument N means step N times (or till program stops for another reason).\n"
"(gdb) "
2015.05.03 15:55:34
-> "help until\n"
2015.05.03 15:55:34
<- "Execute until the program reaches a source line greater than the current\n"
"or a specified location (same args as break command) within the current frame.\n"
"(gdb) "
2015.05.03 15:55:34
-> "help finish\n"
2015.05.03 15:55:34
<- "Execute until selected stack frame returns.\n"
"Usage: finish\n"
"Upon return, the value returned is printed and put in the value history.\n"
"(gdb) "
2015.05.03 15:55:34
-> "help cont\n"
2015.05.03 15:55:34
<- "Continue program being debugged, after signal or breakpoint.\n"
"Usage: continue [N]\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"
"\n"
"If non-stop mode is enabled, continue only the current thread,\n"
"otherwise all the threads in the program are continued. To \n"
"continue all stopped threads in non-stop mode, use the -a option.\n"
"Specifying -a and an ignore count simultaneously is an error.\n"
"(gdb) "
2015.05.03 15:55:34
-> "help signal\n"
2015.05.03 15:55:34
<- "Continue program with the specified signal.\n"
"Usage: signal SIGNAL\n"
"The SIGNAL argument is processed the same as the handle command.\n"
"\n"
"An argument of \"0\" means continue the program without sending it a signal.\n"
"This is useful in cases where the program stopped because of a signal,\n"
"and you want to resume the program while discarding the signal.\n"
"(gdb) "
2015.05.03 15:55:35
-> "help kill\n"
2015.05.03 15:55:35
<- "Kill execution of program being debugged.\n"
"\n"
"List of kill subcommands:\n"
"\n"
"kill inferiors -- Kill inferior ID (or list of IDs)\n"
"\n"
"Type \"help kill\" followed by kill subcommand name for full documentation.\n"
"Type \"apropos word\" to search for commands related to \"word\".\n"
"Command name abbreviations are allowed if unambiguous.\n"
"(gdb) "
2015.05.03 15:55:35
-> "help up\n"
2015.05.03 15:55:35
<- "Select and print stack frame that called this one.\n"
"An argument says how many frames up to go.\n"
"(gdb) "
2015.05.03 15:55:35
-> "help down\n"
2015.05.03 15:55:35
<- "Select and print stack frame called by this one.\n"
"An argument says how many frames down to go.\n"
"(gdb) "
# Getting sources...
2015.05.03 15:55:42
-> "info sources\n"
2015.05.03 15:55:42
<- "Source files for which symbols have been read in:\n"
"\n"
"/home/lash/programming/c/raytoedge.c, /home/lash/programming/c/main.c\n"
"\n"
"Source files for which symbols will be read in on demand:\n"
"\n"
"\n"
"(gdb) "
# Getting sources...done.
# Open Source is an idea whose time has finally come. See http://www.opensource.org/.
2015.05.03 15:55:42
-> "info files\n"
2015.05.03 15:55:42
<- "Symbols from \"/home/lash/programming/c/main\".\n"
"Local exec file:\n"
"\t`/home/lash/programming/c/main\', file type elf64-x86-64.\n"
"\tEntry point: 0x4006f0\n"
"\t0x0000000000400238 - 0x0000000000400254 is .interp\n"
"\t0x0000000000400254 - 0x0000000000400274 is .note.ABI-tag\n"
"\t0x0000000000400274 - 0x0000000000400298 is .note.gnu.build-id\n"
"\t0x0000000000400298 - 0x00000000004002b4 is .gnu.hash\n"
"\t0x00000000004002b8 - 0x0000000000400408 is .dynsym\n"
"\t0x0000000000400408 - 0x00000000004004b8 is .dynstr\n"
"\t0x00000000004004b8 - 0x00000000004004d4 is .gnu.version\n"
"\t0x00000000004004d8 - 0x0000000000400518 is .gnu.version_r\n"
"\t0x0000000000400518 - 0x0000000000400530 is .rela.dyn\n"
"\t0x0000000000400530 - 0x0000000000400620 is .rela.plt\n"
"\t0x0000000000400620 - 0x000000000040063a is .init\n"
"\t0x0000000000400640 - 0x00000000004006f0 is .plt\n"
"\t0x00000000004006f0 - 0x0000000000400d92 is .text\n"
"\t0x0000000000400d94 - 0x0000000000400d9d is .fini\n"
"\t0x0000000000400da0 - 0x0000000000400e30 is .rodata\n"
"\t0x0000000000400e30 - 0x0000000000400e74 is .eh_frame_hdr\n"
"\t0x0000000000400e78 - 0x0000000000400fb4 is .eh_frame\n"
"\t0x0000000000601e00 - 0x0000000000601e08 is .init_array\n"
"\t0x0000000000601e08 - 0x0000000000601e10 is .fini_array\n"
"\t0x0000000000601e10 - 0x0000000000601e18 is .jcr\n"
"\t0x0000000000601e18 - 0x0000000000601ff8 is .dynamic\n"
"\t0x0000000000601ff8 - 0x0000000000602000 is .got\n"
"\t0x0000000000602000 - 0x0000000000602068 is .got.plt\n"
"\t0x0000000000602068 - 0x0000000000602078 is .data\n"
"\t0x0000000000602078 - 0x0000000000602080 is .bss\n"
"(gdb) "
2015.05.03 15:55:42
-> "info program\n"
2015.05.03 15:55:42
<- "The program being debugged is not being run.\n"
"(gdb) "
# /home/lash/programming/c/raytoedge.c
2015.05.03 15:55:43
-> "info line raytoedge.c:1\n"
2015.05.03 15:55:43
<- "Line 1 of \"raytoedge.c\" is at address 0x40091e but contains no code.\n"
"\032\032/home/lash/programming/c/raytoedge.c:1:0:beg:0x40091e\n"
"(gdb) "
# Reading file "/home/lash/programming/c/raytoedge.c"...
# Reading file "/home/lash/programming/c/raytoedge.c"...done.
# File "/home/lash/programming/c/raytoedge.c" 65 lines, 2093 characters
2015.05.03 15:55:43
-> "x /i 0x40091e\n"
2015.05.03 15:55:43
<- " 0x40091e :\tpush %rbp\n"
"(gdb) "
2015.05.03 15:55:43
-> "x /i 0x400a1e\n"
2015.05.03 15:55:43
<- " 0x400a1e :\tadc %ebx,-0x58(%rbp)\n"
"(gdb) "
# Disassembling location 0x40091e to 0x400a1e...
2015.05.03 15:55:43
-> "disassemble 0x40091e,0x400a1e\n"
2015.05.03 15:55:43
<- "Dump of assembler code from 0x40091e to 0x400a1e:\n"
" 0x000000000040091e :\tpush %rbp\n"
" 0x000000000040091f :\tmov %rsp,%rbp\n"
" 0x0000000000400922 :\tpush %rbx\n"
" 0x0000000000400923 :\tsub $0x58,%rsp\n"
" 0x0000000000400927 :\tmovsd %xmm0,-0x38(%rbp)\n"
" 0x000000000040092c :\tmov %edi,-0x3c(%rbp)\n"
" 0x000000000040092f :\tmov %esi,-0x40(%rbp)\n"
" 0x0000000000400932 :\tmov %edx,-0x44(%rbp)\n"
" 0x0000000000400935 :\tmov %ecx,-0x48(%rbp)\n"
" 0x0000000000400938 :\tmov %r8,-0x50(%rbp)\n"
" 0x000000000040093c :\tmov 0x4ce(%rip),%eax # 0x400e10\n"
" 0x0000000000400942 :\tmov %eax,-0x2c(%rbp)\n"
" 0x0000000000400945 :\tmov 0x4c5(%rip),%eax # 0x400e10\n"
" 0x000000000040094b :\tmov %eax,-0x28(%rbp)\n"
" 0x000000000040094e :\tmov 0x4bc(%rip),%eax # 0x400e10\n"
" 0x0000000000400954 :\tmov %eax,-0x24(%rbp)\n"
" 0x0000000000400957 :\tmovabs $0x3ff921fb54442d18,%rdx\n"
" 0x0000000000400961 :\tmov -0x38(%rbp),%rax\n"
" 0x0000000000400965 :\tmov %rdx,-0x58(%rbp)\n"
" 0x0000000000400969 :\tmovsd -0x58(%rbp),%xmm1\n"
" 0x000000000040096e :\tmov %rax,-0x58(%rbp)\n"
" 0x0000000000400972 :\tmovsd -0x58(%rbp),%xmm0\n"
" 0x0000000000400977 :\tcallq 0x400670 \n"
" 0x000000000040097c :\tunpcklpd %xmm0,%xmm0\n"
" 0x0000000000400980 :\tcvtpd2ps %xmm0,%xmm3\n"
" 0x0000000000400984 :\tmovss %xmm3,-0x20(%rbp)\n"
" 0x0000000000400989 :\tmov -0x38(%rbp),%rax\n"
" 0x000000000040098d :\tmov %rax,-0x58(%rbp)\n"
" 0x0000000000400991 :\tmovsd -0x58(%rbp),%xmm0\n"
" 0x0000000000400996 :\tcallq 0x400c80 \n"
" 0x000000000040099b :\tmov %eax,-0x1c(%rbp)\n"
" 0x000000000040099e :\tmov -0x44(%rbp),%eax\n"
" 0x00000000004009a1 :\tneg %eax\n"
" 0x00000000004009a3 :\tmov %eax,-0x18(%rbp)\n"
" 0x00000000004009a6 :\tmov -0x48(%rbp),%eax\n"
" 0x00000000004009a9 :\tneg %eax\n"
" 0x00000000004009ab :\tmov %eax,-0x14(%rbp)\n"
" 0x00000000004009ae :\tmov -0x1c(%rbp),%eax\n"
" 0x00000000004009b1 :\tcmp $0x2,%eax\n"
" 0x00000000004009b4 :\tje 0x400a4d \n"
" 0x00000000004009ba :\tcmp $0x2,%eax\n"
" 0x00000000004009bd :\tjg 0x4009c9 \n"
" 0x00000000004009bf :\tcmp $0x1,%eax\n"
" 0x00000000004009c2 :\tje 0x4009e0 \n"
" 0x00000000004009c4 :\tjmpq 0x400b8d \n"
" 0x00000000004009c9 :\tcmp $0x3,%eax\n"
" 0x00000000004009cc :\tje 0x400ab4 \n"
" 0x00000000004009d2 :\tcmp $0x4,%eax\n"
" 0x00000000004009d5 :\tje 0x400b1e \n"
" 0x00000000004009db :\tjmpq 0x400b8d \n"
" 0x00000000004009e0 :\tmov -0x3c(%rbp),%eax\n"
" 0x00000000004009e3 :\tadd %eax,-0x18(%rbp)\n"
" 0x00000000004009e6 :\tcvtsi2sdl -0x14(%rbp),%xmm2\n"
" 0x00000000004009eb :\tmovsd %xmm2,-0x58(%rbp)\n"
" 0x00000000004009f0 :\tmovss -0x20(%rbp),%xmm0\n"
" 0x00000000004009f5 :\tcvtps2pd %xmm0,%xmm0\n"
" 0x00000000004009f8 :\tcallq 0x4006d0 \n"
" 0x00000000004009fd :\tmovsd -0x58(%rbp),%xmm2\n"
" 0x0000000000400a02 :\tdivsd %xmm0,%xmm2\n"
" 0x0000000000400a06 :\tmovapd %xmm2,%xmm0\n"
" 0x0000000000400a0a :\tunpcklpd %xmm0,%xmm0\n"
" 0x0000000000400a0e :\tcvtpd2ps %xmm0,%xmm4\n"
" 0x0000000000400a12 :\tmovss %xmm4,-0x28(%rbp)\n"
" 0x0000000000400a17 :\tcvtsi2sdl -0x18(%rbp),%xmm3\n"
" 0x0000000000400a1c :\tmovsd %xmm3,-0x58(%rbp)\n"
"End of assembler dump.\n"
"(gdb) "
# Disassembling location 0x40091e to 0x400a1e...done.
# Getting sources...
2015.05.03 15:55:48
-> "info sources\n"
2015.05.03 15:55:48
<- "Source files for which symbols have been read in:\n"
"\n"
"/home/lash/programming/c/raytoedge.c, /home/lash/programming/c/main.c\n"
"\n"
"Source files for which symbols will be read in on demand:\n"
"\n"
"\n"
"(gdb) "
# Getting sources...done.
# Open Source is an idea whose time has finally come. See http://www.opensource.org/.
2015.05.03 15:55:48
-> "info files\n"
2015.05.03 15:55:48
<- "Symbols from \"/home/lash/programming/c/main\".\n"
"Local exec file:\n"
"\t`/home/lash/programming/c/main\', file type elf64-x86-64.\n"
"\tEntry point: 0x4006f0\n"
"\t0x0000000000400238 - 0x0000000000400254 is .interp\n"
"\t0x0000000000400254 - 0x0000000000400274 is .note.ABI-tag\n"
"\t0x0000000000400274 - 0x0000000000400298 is .note.gnu.build-id\n"
"\t0x0000000000400298 - 0x00000000004002b4 is .gnu.hash\n"
"\t0x00000000004002b8 - 0x0000000000400408 is .dynsym\n"
"\t0x0000000000400408 - 0x00000000004004b8 is .dynstr\n"
"\t0x00000000004004b8 - 0x00000000004004d4 is .gnu.version\n"
"\t0x00000000004004d8 - 0x0000000000400518 is .gnu.version_r\n"
"\t0x0000000000400518 - 0x0000000000400530 is .rela.dyn\n"
"\t0x0000000000400530 - 0x0000000000400620 is .rela.plt\n"
"\t0x0000000000400620 - 0x000000000040063a is .init\n"
"\t0x0000000000400640 - 0x00000000004006f0 is .plt\n"
"\t0x00000000004006f0 - 0x0000000000400d92 is .text\n"
"\t0x0000000000400d94 - 0x0000000000400d9d is .fini\n"
"\t0x0000000000400da0 - 0x0000000000400e30 is .rodata\n"
"\t0x0000000000400e30 - 0x0000000000400e74 is .eh_frame_hdr\n"
"\t0x0000000000400e78 - 0x0000000000400fb4 is .eh_frame\n"
"\t0x0000000000601e00 - 0x0000000000601e08 is .init_array\n"
"\t0x0000000000601e08 - 0x0000000000601e10 is .fini_array\n"
"\t0x0000000000601e10 - 0x0000000000601e18 is .jcr\n"
"\t0x0000000000601e18 - 0x0000000000601ff8 is .dynamic\n"
"\t0x0000000000601ff8 - 0x0000000000602000 is .got\n"
"\t0x0000000000602000 - 0x0000000000602068 is .got.plt\n"
"\t0x0000000000602068 - 0x0000000000602078 is .data\n"
"\t0x0000000000602078 - 0x0000000000602080 is .bss\n"
"(gdb) "
2015.05.03 15:55:48
-> "info program\n"
2015.05.03 15:55:48
<- "The program being debugged is not being run.\n"
"(gdb) "
# /home/lash/programming/c/main.c
2015.05.03 15:55:49
-> "info source\n"
2015.05.03 15:55:49
<- "Current source file is raytoedge.c\n"
"Compilation directory is /home/lash/programming/c\n"
"Located in /home/lash/programming/c/raytoedge.c\n"
"Contains 65 lines.\n"
"Source language is c.\n"
"Compiled with DWARF 2 debugging format.\n"
"Does not include preprocessor macro info.\n"
"(gdb) "
2015.05.03 15:55:49
-> "info line main.c:1\n"
2015.05.03 15:55:49
<- "Line 1 of \"main.c\" is at address 0x4007dd but contains no code.\n"
"\032\032/home/lash/programming/c/main.c:1:0:beg:0x4007dd\n"
"(gdb) "
# Reading file "/home/lash/programming/c/main.c"...
# Reading file "/home/lash/programming/c/main.c"...done.
# File "/home/lash/programming/c/main.c" 51 lines, 1520 characters
2015.05.03 15:55:49
-> "x /i 0x4007dd\n"
2015.05.03 15:55:49
<- " 0x4007dd :\tpush %rbp\n"
"(gdb) "
2015.05.03 15:55:49
-> "x /i 0x4008dd\n"
2015.05.03 15:55:49
<- " 0x4008dd :\tpop %rax\n"
"(gdb) "
# Disassembling location 0x4007dd to 0x4008dd...
2015.05.03 15:55:49
-> "disassemble 0x4007dd,0x4008dd\n"
2015.05.03 15:55:49
<- "Dump of assembler code from 0x4007dd to 0x4008dd:\n"
" 0x00000000004007dd :\tpush %rbp\n"
" 0x00000000004007de :\tmov %rsp,%rbp\n"
" 0x00000000004007e1 :\tsub $0x50,%rsp\n"
" 0x00000000004007e5 :\tmov %edi,-0x34(%rbp)\n"
" 0x00000000004007e8 :\tmov %rsi,-0x40(%rbp)\n"
" 0x00000000004007ec :\tmov $0x0,%edi\n"
" 0x00000000004007f1 :\tcallq 0x4006c0 \n"
" 0x00000000004007f6 :\tmov %eax,%edi\n"
" 0x00000000004007f8 :\tcallq 0x4006a0 \n"
" 0x00000000004007fd :\tmov -0x40(%rbp),%rax\n"
" 0x0000000000400801 :\tadd $0x8,%rax\n"
" 0x0000000000400805 :\tmov (%rax),%rax\n"
" 0x0000000000400808 :\tmov %rax,%rdi\n"
" 0x000000000040080b :\tcallq 0x400650 \n"
" 0x0000000000400810 :\tcvttsd2si %xmm0,%eax\n"
" 0x0000000000400814 :\tmov %eax,-0x28(%rbp)\n"
" 0x0000000000400817 :\tmov -0x40(%rbp),%rax\n"
" 0x000000000040081b :\tadd $0x10,%rax\n"
" 0x000000000040081f :\tmov (%rax),%rax\n"
" 0x0000000000400822