Aktuell in C++ geschrieben, ich versuche, eine Netzwerk-Anwendung zu implementieren und es sieht aus wie es aufgrund von Netzwerkproblemen in Endlosschleife fällt:GDB: print sockaddr Zeigerwert
[[email protected] ~]$ sudo strace -p 26252 -f -e trace=network -s 10000
[pid 26272] getpeername(30, 0x7f1699ddfb60, [28]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 26272] getpeername(30, 0x7f1699ddfb60, [28]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 26272] getpeername(30, 0x7f1699ddfb60, [28]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 26272] getpeername(30, 0x7f1699ddfb60, [28]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 26272] getpeername(30, 0x7f1699ddfb60, [28]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 26272] getpeername(30, 0x7f1699ddfb60, [28]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 26272] getpeername(30, 0x7f1699ddfb60, [28]) = -1 ENOTCONN (Transport endpoint is not connected)
Ich muss wissen, mit welchem Netz Verbindung fehlt der Anwendung.
Assumming daß ich mit gdb
dem Prozess anhängen können, wie kann ich den Wert von a truct sockaddr *
(man getpeername) variable dass 0x7f1699ddfb60
Punkte zu drucken?
Untersuchen Sie mit 'X'? – Downvoter
"gesenkten" und dereferenzieren von 'p * tun ((sockaddr_in_or_whichever_you_use *) pointer_to_struct_sockaddr)' oder 'p * ((sockaddr_in_or_whichever_you_use *) 0x7f1699ddfb60)' – alk
@cad '' '(GDB) x 0x7f1699ddfb60 0x7f1699ddfb60: \t 0x00000002' '' - Es sieht wie Ganzzahl aus, aber nicht eine hübsche gedruckte Struktur :( –