GDB для отладки вызываемой библиотечной функции - PullRequest
0 голосов
/ 11 апреля 2020

Я попытался запустить пример кода из проекта github f-stack https://github.com/F-Stack/f-stack/tree/dev/example, вот полная информация https://github.com/F-Stack/f-stack/issues/419#issuecomment -612131138

вот мой текущий пример:

# gdb --args /usr/src/f-stack/example/helloworld --conf /etc/f-stack-vdev.conf --proc-type=primary --proc-id=0


GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
..........
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/src/f-stack/example/helloworld...done.
(gdb) r
Starting program: /usr/src/f-stack/example/helloworld --conf /etc/f-stack-vdev.conf --proc-type=primary --proc-id=0
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[dpdk]: lcore_mask=1
[dpdk]: channel=4
[dpdk]: promiscuous=1
[dpdk]: numa_on=0
[dpdk]: tx_csum_offoad_skip=0
[dpdk]: tso=0
[dpdk]: vlan_strip=1
[dpdk]: idle_sleep=0
[dpdk]: pkt_tx_delay=100
[dpdk]: port_list=0
[dpdk]: nb_vdev=1
[dpdk]: nb_bond=0
[vdev0]: path=/usr/local/var/run/openvswitch/dpdkvhostserver0
[vdev0]: queues=1
[vdev0]: queue_size=256
[vdev0]: mac=00:00:00:00:00:01
[vdev0]: cq=0
[vdev0]: enable=1
[freebsd.boot]: hz=100
[freebsd.boot]: fd_reserve=1024
[freebsd.boot]: kern.ipc.maxsockets=262144
[freebsd.boot]: net.inet.tcp.syncache.hashsize=4096
[freebsd.boot]: net.inet.tcp.syncache.bucketlimit=100
[freebsd.boot]: net.inet.tcp.tcbhashsize=65536
[freebsd.boot]: kern.ncallout=262144
[freebsd.boot]: kern.features.inet6=1
[freebsd.boot]: net.inet6.ip6.auto_linklocal=1
[freebsd.boot]: net.inet6.ip6.accept_rtadv=2
[freebsd.boot]: net.inet6.icmp6.rediraccept=1
[freebsd.boot]: net.inet6.ip6.forwarding=0
[freebsd.sysctl]: kern.ipc.somaxconn=32768
[freebsd.sysctl]: kern.ipc.maxsockbuf=16777216
[freebsd.sysctl]: net.link.ether.inet.maxhold=5
[freebsd.sysctl]: net.inet.tcp.fast_finwait2_recycle=1
[freebsd.sysctl]: net.inet.tcp.sendspace=16384
[freebsd.sysctl]: net.inet.tcp.recvspace=8192
[freebsd.sysctl]: net.inet.tcp.cc.algorithm=cubic
[freebsd.sysctl]: net.inet.tcp.sendbuf_max=16777216
[freebsd.sysctl]: net.inet.tcp.recvbuf_max=16777216
[freebsd.sysctl]: net.inet.tcp.sendbuf_auto=1
[freebsd.sysctl]: net.inet.tcp.recvbuf_auto=1
[freebsd.sysctl]: net.inet.tcp.sendbuf_inc=16384
[freebsd.sysctl]: net.inet.tcp.recvbuf_inc=524288
[freebsd.sysctl]: net.inet.tcp.sack.enable=1
[freebsd.sysctl]: net.inet.tcp.blackhole=1
[freebsd.sysctl]: net.inet.tcp.msl=2000
[freebsd.sysctl]: net.inet.tcp.delayed_ack=0
[freebsd.sysctl]: net.inet.udp.blackhole=1
[freebsd.sysctl]: net.inet.ip.redirect=0
[freebsd.sysctl]: net.inet.ip.forwarding=0

Program received signal SIGSEGV, Segmentation fault.
0x0000555555682de4 in ff_load_config ()
(gdb) bt
#0  0x0000555555682de4 in ff_load_config () <----------
#1  0x000055555568dd39 in ff_init ()
#2  0x00005555555b5012 in main (argc=<optimized out>, argv=<optimized out>) at main.c:112
(gdb) 

, поэтому кажется, что что-то пошло не так в ff_load_config, а ff_load_config должен исходить из /usr/local/lib/libfstack.a

Как использовать GDB для отладки в ff_load_config для определения ошибки сегментации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...