Hi,
I'm trying to develop an app using the vcl library.
Unfortunately, I cannot start the app with gdb when preloading the library.
I start it with this command:
>
> sudo VCL_DEBUG=2 LDP_DEBUG=2
> LD_PRELOAD=/home/hardcore/ductm/vpp/lib64/libvcl_ldpreload.so gdb
> ./epoll-server
Sometimes, gdb crashes at the beginning due to buffer overflow. Here is the bt:
>
> *** buffer overflow detected ***: gdb terminated
> === Backtrace: =
> /lib64/libc.so.6(__fortify_fail+0x37)[0x7f2473240cb7]
> /lib64/libc.so.6(+0x10be80)[0x7f247323ee80]
> /lib64/libc.so.6(+0x10dc27)[0x7f2473240c27]
> gdb[0x5d6178]
> gdb(add_file_handler+0x36)[0x5d70d6]
> gdb[0x4be307]
> gdb(_initialize_python+0x37b)[0x51de4b]
> gdb(gdb_init+0x2f)[0x6907af]
> gdb[0x5d073f]
> gdb(catch_errors+0x8a)[0x5ce68a]
> gdb(gdb_main+0x24)[0x5d1784]
> gdb(main+0x3e)[0x45734e]
> /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f2473154af5]
> gdb[0x457391]
Sometimes, gdb can start but when I try to run any app, it just hangs up. When
printing some logs, I realize that the ldp app is created 2 times. At the
second one, it hangs when trying to connect to vpp:
>
>
>
>
> (gdb) run -p 12345
>
>
>
> Starting program: /home/hardcore/ductm/./epoll-server -p 12345
>
>
>
> vppcom_app_create:2330: VCL<18422>: configured VCL debug level (2) from
> VCL_DEBUG!
>
>
>
> vppcom_cfg_heapsize:1819: VCL<18422>: using default heapsize 268435456
> (0x1000)
>
>
>
> vppcom_cfg_heapsize:1965: VCL<18422>: allocated VCL heap = 0x7fffe25a7000,
> size 268435456 (0x1000)
>
>
>
> vppcom_cfg_read:1985: VCL<18422>: using default configuration.
>
>
>
> vppcom_connect_to_vpp:707: VCL<18422>: app (ldp-18422-app) connecting to
> VPP api (/vpe-api)...
>
>
>
> vppcom_connect_to_vpp:723: VCL<18422>: app (ldp-18422-app) is connected to
> VPP!
>
>
>
> vppcom_app_create:2461: VCL<18422>: sending session enable
>
>
>
> vppcom_app_create:2472: VCL<18422>: sending app attach
>
>
>
> vppcom_app_create:2485: VCL<18422>: app_name 'ldp-18422-app',
> my_client_index 768 (0x300)
>
>
>
> ldp_init:150: LDP<18422>: configured LDP debug level (2) from the env var
> LDP_DEBUG!
>
>
>
> ldp_init:218: LDP<18422>: LDP initialization: done!
>
>
>
> ldp_constructor:3456: LDP<18422>: LDP constructor: done!
>
>
>
>
>
>
>
> [Thread debugging using libthread_db enabled]
>
>
>
> Using host libthread_db library "/lib64/libthread_db.so.1".
>
>
>
>
>
>
>
> vppcom_app_create:2330: VCL<18422>: configured VCL debug level (2) from
> VCL_DEBUG!
>
>
>
> vppcom_cfg_heapsize:1819: VCL<18422>: using default heapsize 268435456
> (0x1000)
>
>
>
> vppcom_cfg_heapsize:1965: VCL<18422>: allocated VCL heap = 0x7fffe27d1000,
> size 268435456 (0x1000)
>
>
>
> vppcom_cfg_read:1985: VCL<18422>: using default configuration.
>
>
>
> vppcom_connect_to_vpp:707: VCL<18422>: app (ldp-18422-app) connecting to
> VPP api (/vpe-api)...
>
>
Running the app without gdb works for some apps; some others show unexpected
behaviors.
I use the VCL lib from master branch (18.07)
Does this lib require some specific ways to work with gdb?
Thank you!