#------------------------------------# # Miguel Espino # ll352639 # lfc083 #------------------------------------# (gdb) run Starting program: /student/lfc083/cmpt332-lfc083-lab0/myQsort This GDB supports auto-downloading debuginfo from the following URLs: <https://debuginfod.fedoraproject.org/> Enable debuginfod for this session? (y or [n]) n Debuginfod has been disabled. To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Usage: perror. wrong number of arguments: Success [Inferior 1 (process 20823) exited with code 0377] Missing debuginfo, try: dnf debuginfo-install glibc-2.39-22.fc40.x86_64 (gdb) run 1 Starting program: /student/lfc083/cmpt332-lfc083-lab0/myQsort 1 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". 123 321 12 12 12 Program received signal SIGSEGV, Segmentation fault. 0x00000000004016ea in main (argc=2, argv=0x7fffffffdb48) at sortMain.c:48 48 if ((nlines = *(int *)readlines(lineptr, MAXLINES)) >=0) (gdb) b readlines Breakpoint 1 at 0x401405: file input-routines.c, line 33. (gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) yes Starting program: /student/lfc083/cmpt332-lfc083-lab0/myQsort 1 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Breakpoint 1, readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:33 33 nlines=0; (gdb) c Continuing. 12 12 12 Program received signal SIGSEGV, Segmentation fault. 0x00000000004016ea in main (argc=2, argv=0x7fffffffdb48) at sortMain.c:48 48 if ((nlines = *(int *)readlines(lineptr, MAXLINES)) >=0) (gdb) b 47 Breakpoint 2 at 0x4016db: file sortMain.c, line 48. (gdb) d readlines (gdb) run 1 The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /student/lfc083/cmpt332-lfc083-lab0/myQsort 1 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Breakpoint 2, main (argc=2, argv=0x7fffffffdb48) at sortMain.c:48 48 if ((nlines = *(int *)readlines(lineptr, MAXLINES)) >=0) (gdb) n Breakpoint 1, readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:33 33 nlines=0; (gdb) s 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd970 "@", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd970 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd970 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) info local c = 10 i = 0 Breakpoint 1, main (argc=2, argv=0x7fffffffd9d8) at sortMain.c:48 48 if ((nlines = *(int *)readlines(lineptr, MAXLINES)) >=0) (gdb) (gdb) s readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:33 33 nlines=0; (gdb) s 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "@", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) s 18 if (c == '\n') (gdb) 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) info local c = 10 i = 0 (gdb) c = 10 i = 0 (gdb) c = 10 i = 0 (gdb) c = 10 i = 0 (gdb) c = 10 i = 0 (gdb) c = 10 i = 0 (gdb) c = 10 i = 0 (gdb) c = 10 i = 0 (gdb) s 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) 40 line [len-1] = '\0'; (gdb) info local len = 1 nlines = 11 p = 0x405810 "" line = "\n\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\200\0 00\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b", '\000' <repeats 14 times>, "\316\335\377\377\377\177\000\000\001\000\000\000\000\000\000\005\000\ 001\000\000\000\000\000\000\330\331\377\377\377\177\000\000\002", '\000' <repeats 16 times>, "\320\377", <incomplete sequence \367> (gdb) len = 1 nlines = 11 p = 0x405810 "" line = "\n\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\200\00 0\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b", '\000' <repeats 14 times>, "\316\335\377\377\377\177\000\000\001\000\000\000\000\000\000\005\000\ 001\000\000\000\000\000\000\330\331\377\377\377\177\000\000\002", '\000' <repeats 16 times>, "\320\377", <incomplete sequence \367> (gdb) s 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) info local c = 0 i = 0 (gdb) s 41 memmove(p, line, len); (gdb) 42 lineptr[nlines++] = p; (gdb) 34 while ((len = myGetline(line, MAXLEN)) > 0) (gdb) myGetline (s=0x7fffffffd800 "\r", lim=100) at input-routines.c:16 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 123 17 s[i] = c; (gdb) 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) info lcoal Undefined info command: "lcoal". Try "help info". (gdb) info local c = 49 i = 0 (gdb) c = 49 i = 0 (gdb) s 17 s[i] = c; (gdb) info local c = 50 i = 1 (gdb) s 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 17 s[i] = c; (gdb) 16 for (i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) (gdb) 18 if (c == '\n') (gdb) info local c = 10 i = 3 (gdb) s 20 s[i] = c; (gdb) 21 ++i; (gdb) 23 return i; (gdb) 25 } (gdb) readlines (lineptr=0x404080 <lineptr>, maxlines=100) at input-routines.c:36 36 if (nlines >= maxlines || (p = (char *)malloc(len)) == NULL) (gdb) info local len = 4 nlines = 2 p = 0x4056d0 "\r" line = "123\n\000\000\000\000\b\000\000\000\000\000\000\000\000\200\000\000\00 0\000\000\000\000\b\000\000\000\000\000\000\000\b", '\000' <repeats 14 times>, "\316\335\377\377\377\177\000\000\001\000\000\000\000\000\000\005\000\001\000 \000\000\000\000\000\330\331\377\377\377\177\000\000\002", '\000' <repeats 16 times>, "\320\377", <incomplete sequence \367> (gdb) p p $1 = 0x4056d0 "\r" (gdb) p *p $2 = 13 '\r' (gdb) s 40 line [len-1] = '\0'; (gdb) info local len = 4 nlines = 2 p = 0x4056f0 "" line = "123\n\000\000\000\000\b\000\000\000\000\000\000\000\000\200\000\000\00 0\000\000\000\000\b\000\000\000\000\000\000\000\b", '\000' <repeats 14 times>, "\316\335\377\377\377\177\000\000\001\000\000\000\000\000\000\005\000\001\000\ 000\000\000\000\000\330\331\377\377\377\177\000\000\002", '\000' <repeats 16 times>, "\320\377", <incomplete sequence \367> (gdb) p line $3 = "123\n\000\000\000\000\b\000\000\000\000\000\000\000\000\200\000\000\000 \000\000\000\000\b\000\000\000\000\000\000\000\b", '\000' <repeats 14 times>, "\316\335\377\377\377\177\000\000\001\000\000\000\000\000\000\005\000\001\00 0\000\000\000\000\000\330\331\377\377\377\177\000\000\002", '\000' <repeats 16 times>, "\320\377", <incomplete sequence \367> (gdb) p *line $4 = 49 '1' Breakpoint 1, main (argc=2, argv=0x7fffffffd9d8) at sortMain.c:48 48 if ((nlines = readlines(lineptr, MAXLINES)) >=0) Missing debuginfo, try: dnf debuginfo-install glibc-2.39-22.fc40.x86_64 (gdb) c Continuing. 123 21 123 1 2 UNSORTED ORDER Program received signal SIGSEGV, Segmentation fault. (gdb) b 55 Breakpoint 1 at 0x40172d: file sortMain.c, line 55. (gdb) c The program is not being run. (gdb) run 1 Starting program: /student/lfc083/cmpt332-lfc083-lab0/myQsort 1 This GDB supports auto-downloading debuginfo from the following URLs: <https://debuginfod.fedoraproject.org/> Enable debuginfod for this session? (y or [n]) n Debuginfod has been disabled. To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". 12 321 12 1 12 3 UNSORTED ORDER Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7e24e5d in __strlen_avx2 () from /lib64/libc.so.6 Missing debuginfo, try: dnf debuginfo-install glibc-2.39-22.fc40.x86_64 (gdb) s Single stepping until exit from function __strlen_avx2, which has no line number information. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) quit (gdb) b 50 Breakpoint 1 at 0x4016f3: file sortMain.c, line 50. (gdb) s The program is not being run. (gdb) run 1 Starting program: /student/lfc083/cmpt332-lfc083-lab0/myQsort 1 This GDB supports auto-downloading debuginfo from the following URLs: <https://debuginfod.fedoraproject.org/> Enable debuginfod for this session? (y or [n]) n Debuginfod has been disabled. To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". s 123 321 123 2 2 1 2 Breakpoint 1, main (argc=2, argv=0x7fffffffd9d8) at sortMain.c:50 50 printf("UNSORTED ORDER\n"); Missing debuginfo, try: dnf debuginfo-install glibc-2.39-22.fc40.x86_64 (gdb) s UNSORTED ORDER 51 writelines(*lineptr, nlines); (gdb) writelines (lineptr=0x4056b0, nlines=8) at input-routines.c:51 warning: Source file is more recent than executable. 51 while (nlines-- >0) (gdb) 52 printf("%s\n", *lineptr++); (gdb) Program received signal SIGSEGV, Segmentation fault. (gdb) b 53 Breakpoint 1 at 0x40170c: file sortMain.c, line 53. (gdb) run 1 Starting program: /student/lfc083/cmpt332-lfc083-lab0/myQsort 1 This GDB supports auto-downloading debuginfo from the following URLs: <https://debuginfod.fedoraproject.org/> Enable debuginfod for this session? (y or [n]) n Debuginfod has been disabled. To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". s 123 123 12 1 UNSORTED ORDER s 123 123 12 1 Breakpoint 1, main (argc=2, argv=0x7fffffffd9d8) at sortMain.c:53 53 myQsort ((void **)lineptr, 0, nlines-1, comparing); Missing debuginfo, try: dnf debuginfo-install glibc-2.39-22.fc40.x86_64 (gdb) s myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) 26 (*swap)(v, left, (left + right)/2); (gdb) swap (v=0x404080 <lineptr>, i=0, j=2) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:27 27 last = left; (gdb) 29 for (index = left+1; index < right; index++) (gdb) info local index = 0 last = 0 (gdb) index = 0 last = 0 (gdb) index = 0 last = 0 (gdb) s 31 if ((*comp)(v[index],v[left]) < 0) (gdb) compareInt (first=0x4056d0, second=0x4056f0) at intComp.c:21 21 iFirst = *(int*)first; (gdb) 22 iSecond = *(int*)second; (gdb) 24 if(iFirst < iSecond){ (gdb) 25 return -1; (gdb) 31 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:32 32 (*swap)(v, ++last, index); (gdb) info local index = 1 last = 0 (gdb) index = 1 last = 0 (gdb) index = 1 last = 0 (gdb) index = 1 last = 0 (gdb) index = 1 last = 0 (gdb) index = 1 last = 0 (gdb) s swap (v=0x404080 <lineptr>, i=1, j=1) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:29 29 for (index = left+1; index < right; index++) (gdb) 31 if ((*comp)(v[index],v[left]) < 0) (gdb) compareInt (first=0x4056b0, second=0x4056f0) at intComp.c:21 21 iFirst = *(int*)first; (gdb) 22 iSecond = *(int*)second; (gdb) 24 if(iFirst < iSecond){ (gdb) 25 return -1; (gdb) 31 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:32 32 (*swap)(v, ++last, index); (gdb) swap (v=0x404080 <lineptr>, i=2, j=2) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:29 29 for (index = left+1; index < right; index++) (gdb) 31 if ((*comp)(v[index],v[left]) < 0) (gdb) compareInt (first=0x405710, second=0x4056f0) at intComp.c:21 21 iFirst = *(int*)first; (gdb) 22 iSecond = *(int*)second; (gdb) 24 if(iFirst < iSecond){ (gdb) 27 return (iFirst > iSecond); (gdb) 31 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:29 29 for (index = left+1; index < right; index++) (gdb) 31 if ((*comp)(v[index],v[left]) < 0) (gdb) compareInt (first=0x405730, second=0x4056f0) at intComp.c:21 21 iFirst = *(int*)first; (gdb) 22 iSecond = *(int*)second; (gdb) 24 if(iFirst < iSecond){ (gdb) 25 return -1; (gdb) 31 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt> ) at qsort.c:32 32 (*swap)(v, ++last, index); (gdb) swap (v=0x404080 <lineptr>, i=3, j=4) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) info local temp = 0x405710 (gdb) p *temp Attempt to dereference a generic pointer. (gdb) p (int) temp $1 = 4216592 (gdb) s myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:29 29 for (index = left+1; index < right; index++) (gdb) 35 (*swap)(v, left, last); (gdb) swap (v=0x404080 <lineptr>, i=0, j=3) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:36 36 myQsort(v, left, last-1, comp); (gdb) info local index = 5 last = 3 (gdb) s myQsort (v=0x404080 <lineptr>, left=0, right=2, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) s 26 (*swap)(v, left, (left + right)/2); (gdb) swap (v=0x404080 <lineptr>, i=0, j=1) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=2, comp=0x401344 <compareInt> ) at qsort.c:27 27 last = left; (gdb) 29 for (index = left+1; index < right; index++) (gdb) 31 if ((*comp)(v[index],v[left]) < 0) (gdb) compareInt (first=0x405730, second=0x4056d0) at intComp.c:21 21 iFirst = *(int*)first; (gdb) 22 iSecond = *(int*)second; (gdb) info local iFirst = 12849 iSecond = 4216624 (gdb) s 24 if(iFirst < iSecond){ (gdb) 27 return (iFirst > iSecond); (gdb) 31 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=2, comp=0x401344 <compareInt>) at qsort.c:29 29 for (index = left+1; index < right; index++) (gdb) 35 (*swap)(v, left, last); (gdb) swap (v=0x404080 <lineptr>, i=0, j=0) at swap.c:12 12 temp = v[i]; (gdb) info local temp = 0x323100000000 (gdb) s 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=2, comp=0x401344 <compareInt>) at qsort.c:36 36 myQsort(v, left, last-1, comp); (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=-1, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) 24 return; (gdb) 38 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=2, comp=0x401344 <compareInt>) at qsort.c:37 37 myQsort(v, last+1, right, comp); (gdb) myQsort (v=0x404080 <lineptr>, left=1, right=2, comp=0x401344 <compareInt> ) at qsort.c:23 23 if (left >= right) (gdb) 26 (*swap)(v, left, (left + right)/2); (gdb) swap (v=0x404080 <lineptr>, i=1, j=1) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=1, right=2, comp=0x401344 <compareInt>) at qsort.c:27 27 last = left; (gdb) 29 for (index = left+1; index < right; index++) (gdb) 35 (*swap)(v, left, last); (gdb) swap (v=0x404080 <lineptr>, i=1, j=1) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=1, right=2, comp=0x401344 <compareInt>) at qsort.c:36 36 myQsort(v, left, last-1, comp); (gdb) myQsort (v=0x404080 <lineptr>, left=1, right=0, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) 24 return; (gdb) 38 } (gdb) myQsort (v=0x404080 <lineptr>, left=1, right=2, comp=0x401344 <compareInt>) at qsort.c:37 37 myQsort(v, last+1, right, comp); (gdb) myQsort (v=0x404080 <lineptr>, left=2, right=2, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) 24 return; (gdb) 38 } (gdb) 38 } (gdb) 38 } (gdb) myQsort (v=0x404080 <lineptr>, left=0, right=5, comp=0x401344 <compareInt>) at qsort.c:37 37 myQsort(v, last+1, right, comp); (gdb) myQsort (v=0x404080 <lineptr>, left=4, right=5, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) 26 (*swap)(v, left, (left + right)/2); (gdb) swap (v=0x404080 <lineptr>, i=4, j=4) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=4, right=5, comp=0x401344 <compareInt>) at qsort.c:27 27 last = left; (gdb) 29 for (index = left+1; index < right; index++) (gdb) 35 (*swap)(v, left, last); (gdb) swap (v=0x404080 <lineptr>, i=4, j=4) at swap.c:12 12 temp = v[i]; (gdb) 13 v[i] = v[j]; (gdb) 14 v[j] = temp; (gdb) 15 } (gdb) myQsort (v=0x404080 <lineptr>, left=4, right=5, comp=0x401344 <compareInt>) at qsort.c:36 36 myQsort(v, left, last-1, comp); (gdb) myQsort (v=0x404080 <lineptr>, left=4, right=3, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) 24 return; (gdb) 38 } (gdb) myQsort (v=0x404080 <lineptr>, left=4, right=5, comp=0x401344 <compareInt> ) at qsort.c:37 37 myQsort(v, last+1, right, comp); (gdb) myQsort (v=0x404080 <lineptr>, left=5, right=5, comp=0x401344 <compareInt>) at qsort.c:23 23 if (left >= right) (gdb) 24 return; (gdb) 38 } (gdb) 38 } (gdb) 38 } (gdb) main (argc=2, argv=0x7fffffffd9d8) at sortMain.c:55 55 printf("\nSORTED ORDER \n"); (gdb) SORTED ORDER 57 writelines(lineptr, nlines); (gdb) writelines (lineptr=0x404080 <lineptr>, nlines=6) at input-routines.c:51 51 while (nlines-- >0) (gdb) 52 printf("%s\n", *lineptr++); (gdb) 51 while (nlines-- >0) (gdb) 52 printf("%s\n", *lineptr++); (gdb) 12 51 while (nlines-- >0) (gdb) 52 printf("%s\n", *lineptr++); (gdb) s 51 while (nlines-- >0) (gdb) 52 printf("%s\n", *lineptr++); (gdb) 123 51 while (nlines-- >0) (gdb) 52 printf("%s\n", *lineptr++); (gdb) 123 51 while (nlines-- >0) (gdb) 52 printf("%s\n", *lineptr++); (gdb) 1 51 while (nlines-- >0) (gdb) 53 } (gdb) main (argc=2, argv=0x7fffffffd9d8) at sortMain.c:58 58 return 0; (gdb) 65 } (gdb) 0x00007ffff7cdf088 in __libc_start_call_main () from /lib64/libc.so.6 (gdb) Single stepping until exit from function __libc_start_call_main, which has no line number information.