(gdb) p pc.namelist
$11 = 0x7fffffffed7f "../usr/lib/debug/boot/vmlinux-6.1.0-16-generic"
(gdb) p kt.proc_version
$12 = "Linux version 6.1.0-16-generic (buildd@lcy02-amd64-014) (x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:3"...
Breakpoint 6, match_file_string (filename=0x7fffffffed7f "../usr/lib/debug/boot/vmlinux-6.1.0-16-generic",
string=0x5555560f0e20 <kernel_table+128> "Linux version 6.1.0-16-generic (buildd@lcy02-amd64-014) (x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:3"...,
buffer=buffer@entry=0x7fffffffdce0 "crash.o") at ./filesys.c:4314
4314 {
(gdb) l
...
4312 static int
4313 match_file_string(char *filename, char *string, char *buffer)
4314 {
4315 int found;
4316 char command[BUFSIZE];
4317 FILE *pipe;
4318
(gdb)
4319
4320 sprintf(command, "/usr/bin/strings %s", filename);
4321 if ((pipe = popen(command, "r")) == NULL) {
4322 error(INFO, "%s: %s\n", filename, strerror(errno));
4323 return FALSE;
4324 }
4325
4326 found = FALSE;
4327 while (fgets(buffer, BUFSIZE-1, pipe)) {
4328 if (strstr(buffer, string)) {
(gdb)
4329 found = TRUE;
4330 break;
4331 }
4332 }
4333 pclose(pipe);
4334
4335 return found;
4336 }
...
(gdb) printf "%s\n", string
Linux version 6.1.0-16-generic (buildd@lcy02-amd64-014) (x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:37:30 UTC 2023 (Ubuntu 6.1.0-16.16-generic 6.1.6)
(gdb) shell
# cat /proc/version
Linux version 6.1.0-16-generic (buildd@lcy02-amd64-014) (x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:37:30 UTC 2023 (Ubuntu 6.1.0-16.16-generic 6.1.6)
# strings ../usr/lib/debug/boot/vmlinux-6.1.0-16-generic | grep 'Linux version'
Linux version 6.1.0-16-generic (buildd@lcy02-amd64-014) (x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC
Linux version 6.1.0-16-generic (buildd@lcy02-amd64-014) (x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:37:30 UTC 2023
GDB session with crash from git.
(gdb) p pc.namelist lib/debug/ boot/vmlinux- 6.1.0-16- generic"
$11 = 0x7fffffffed7f "../usr/
(gdb) p kt.proc_version lcy02-amd64- 014) (x86_64- linux-gnu- gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:3"...
$12 = "Linux version 6.1.0-16-generic (buildd@
Breakpoint 6, match_file_string (filename= 0x7fffffffed7f "../usr/ lib/debug/ boot/vmlinux- 6.1.0-16- generic" , 0x5555560f0e20 <kernel_table+128> "Linux version 6.1.0-16-generic (buildd@ lcy02-amd64- 014) (x86_64- linux-gnu- gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:3"..., buffer@ entry=0x7ffffff fdce0 "crash.o") at ./filesys.c:4314 string( char *filename, char *string, char *buffer)
string=
buffer=
4314 {
(gdb) l
...
4312 static int
4313 match_file_
4314 {
4315 int found;
4316 char command[BUFSIZE];
4317 FILE *pipe;
4318
(gdb)
4319
4320 sprintf(command, "/usr/bin/strings %s", filename);
4321 if ((pipe = popen(command, "r")) == NULL) {
4322 error(INFO, "%s: %s\n", filename, strerror(errno));
4323 return FALSE;
4324 }
4325
4326 found = FALSE;
4327 while (fgets(buffer, BUFSIZE-1, pipe)) {
4328 if (strstr(buffer, string)) {
(gdb)
4329 found = TRUE;
4330 break;
4331 }
4332 }
4333 pclose(pipe);
4334
4335 return found;
4336 }
...
(gdb) printf "%s\n", string lcy02-amd64- 014) (x86_64- linux-gnu- gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:37:30 UTC 2023 (Ubuntu 6.1.0-16.16-generic 6.1.6)
Linux version 6.1.0-16-generic (buildd@
(gdb) shell
# cat /proc/version lcy02-amd64- 014) (x86_64- linux-gnu- gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:37:30 UTC 2023 (Ubuntu 6.1.0-16.16-generic 6.1.6)
Linux version 6.1.0-16-generic (buildd@
# cat /proc/version_ signature
Ubuntu 6.1.0-16.16-generic 6.1.6
# strings ../usr/ lib/debug/ boot/vmlinux- 6.1.0-16- generic | grep 'Linux version' lcy02-amd64- 014) (x86_64- linux-gnu- gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC lcy02-amd64- 014) (x86_64- linux-gnu- gcc-12 (Ubuntu 12.2.0-14ubuntu2) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 24 14:37:30 UTC 2023
Linux version 6.1.0-16-generic (buildd@
Linux version 6.1.0-16-generic (buildd@