使用gdb打印ip地址

sud*_*03r 4 c++ printing gdb ip-address

我正在调试网络代码,并希望打印声明为的IP地址int32.当我使用gdb打印命令打印它时,我得到一些没有太大意义的值.

我怎么可能以有意义的格式打印它们?

Ada*_*eld 9

只需使用inet_ntoa(3)如下:

(gdb) p (char*)inet_ntoa(0x01234567)  # Replace with your IP address
$1 = 0xa000b660 "103.69.35.1"
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您正在调试核心文件而无法使用inet_ntoa(),那么您还可以执行以下操作:

(gdb) set $int_ip = 0x01234567
(gdb) printf "%d.%d.%d.%d\n", ($int_ip & 0xff), ($int_ip >> 8) & 0xff, ($int_ip >> 16) & 0xff, ($int_ip >> 24)
103.69.35.1
(gdb)