This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v3] Allow using special files with File I/O functions


You can find below the logs of the test I performed using our GDB server with a program embedded in a Raspberry Pi:

 

(gdb) set $st = (struct stat*) malloc(sizeof (struct stat))

(gdb) call stat("/dev/stdout", $st)
$1 = 0x0
(gdb) p *$st
$2 = {
  st_dev = 0x2, 
  st_ino = 0x4, 
  st_mode = 0x2190, 
  st_nlink = 0x1, 
  st_uid = 0x3e8, 
  st_gid = 0x5, 
  st_rdev = 0x8801, 
  st_size = 0x0, 
  st_atime = 0x5b3507e0, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b34fb47, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b3507e0, 
  st_spare4 = {0x0, 0x0}
}
(gdb) p /o $st->st_mode            
$8 = 020620

(gdb) call stat("myfifo", $st)     
$3 = 0x0
(gdb) p *$st
$4 = {
  st_dev = 0x2, 
  st_ino = 0x4f7c, 
  st_mode = 0x11a4, 
  st_nlink = 0x1, 
  st_uid = 0x3e8, 
  st_gid = 0x3e8, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5b3504ed, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b3504ed, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b3504ed, 
  st_spare4 = {0x0, 0x0}
}
(gdb) p /o $st->st_mode       
$6 = 010644

(gdb) call stat("/run/dbus/system_bus_socket", $st)  
$9 = 0x0
(gdb) p *$st                                       
$10 = {
  st_dev = 0x2, 
  st_ino = 0x36c7, 
  st_mode = 0xc1b6, 
  st_nlink = 0x1, 
  st_uid = 0x0, 
  st_gid = 0x0, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5b33e995, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b33e995, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b33e995, 
  st_spare4 = {0x0, 0x0}
}
(gdb) p /o $st->st_mode                            
$11 = 0140666

(gdb) call stat("/tmp", $st)                       
$12 = 0x0
(gdb) p *$st                
$13 = {
  st_dev = 0x2, 
  st_ino = 0x7a5, 
  st_mode = 0x41ff, 
  st_nlink = 0x1, 
  st_uid = 0x0, 
  st_gid = 0x0, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5b350829, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b350829, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5a5a9802, 
  st_spare4 = {0x0, 0x0}
}
(gdb) p /o $st->st_mode     
$14 = 040777

(gdb) call stat("Makefile", $st)
$15 = 0x0
(gdb) p *$st                    
$16 = {
  st_dev = 0x0, 
  st_ino = 0xc6b9, 
  st_mode = 0x81a4, 
  st_nlink = 0x1, 
  st_uid = 0x3e8, 
  st_gid = 0x3e8, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5ae35b23, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b311f46, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b3500d5, 
  st_spare4 = {0x0, 0x0}
}
(gdb) p /o $st->st_mode         
$17 = 0100644

(gdb) call stat("i dont exist", $st)
$18 = 0xffffffff

(gdb) call fstat(0, $st)
$1 = 0x0
(gdb) p *$st
$3 = {
  st_dev = 0x1, 
  st_ino = 0x0, 
  st_mode = 0x2100, 
  st_nlink = 0x1, 
  st_uid = 0x3e8, 
  st_gid = 0x3e8, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5b35144e, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b35144e, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b35144e, 
  st_spare4 = {0x0, 0x0}
}

(gdb) call fstat(1, $st)
$4 = 0x0
(gdb) p *$st                                               
$5 = {
  st_dev = 0x1, 
  st_ino = 0x0, 
  st_mode = 0x2080, 
  st_nlink = 0x1, 
  st_uid = 0x3e8, 
  st_gid = 0x3e8, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5b351460, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b351460, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b351460, 
  st_spare4 = {0x0, 0x0}
}

(gdb) call fstat(2, $st)
$6 = 0x0
(gdb) p *$st            
$7 = {
  st_dev = 0x1, 
  st_ino = 0x0, 
  st_mode = 0x2080, 
  st_nlink = 0x1, 
  st_uid = 0x3e8, 
  st_gid = 0x3e8, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5b35146b, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b35146b, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b35146b, 
  st_spare4 = {0x0, 0x0}
}

(gdb) call fstat(3, $st)
$8 = 0xffffffff

(gdb) set $fd = open("myfifo", 0)
(gdb) call fstat($fd, $st)       
$10 = 0x0
(gdb) p *$st
$12 = {
  st_dev = 0x2, 
  st_ino = 0x4f7c, 
  st_mode = 0x11a4, 
  st_nlink = 0x1, 
  st_uid = 0x3e8, 
  st_gid = 0x3e8, 
  st_rdev = 0x0, 
  st_size = 0x0, 
  st_atime = 0x5b351511, 
  st_spare1 = 0x0, 
  st_mtime = 0x5b351511, 
  st_spare2 = 0x0, 
  st_ctime = 0x0, 
  st_spare3 = 0x0, 
  st_blksize = 0x0, 
  st_blocks = 0x5b3504ed, 
  st_spare4 = {0x0, 0x0}
}
(gdb) p /o $st->st_mode
$13 = 010644


 ​
 
 

-- 
Julio Guerra
Co-founder & CTO of Farjump
Mobile: +33 618 644 164
LinkedIn: https://linkedin.com/in/guerrajulio
Slack: farjump.slack.com

 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]