google / google/cppdap

possibly memory leak reported by valgrind

Abierto
#122 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
192
Forks
66
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Hi all,
I created a demo application based on the 1.58.0-a version of this DAP implementation.
After doing the memory check by the valgrind tool, I get a possibly lost report as following:

```sh
--------------------------------------------------------
672 bytes in 2 blocks are possibly lost in loss record 578 of 581
--------------------------------------------------------
at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x40147D9: calloc (rtld-malloc.h:44)
by 0x40147D9: allocate_dtv (dl-tls.c:375)
by 0x40147D9: _dl_allocate_tls (dl-tls.c:634)
by 0x819E7B4: allocate_stack (allocatestack.c:430)
by 0x819E7B4: pthread_create@@GLIBC_2.34 (pthread_create.c:647)
by 0x7EB2328: std::thread::_M_start_thread(std::unique_ptr >, void (*)()) (no file available)
by 0x7CB3AA9: std::thread::thread<(anonymous namespace)::Impl::startProcessingMessages(std::function const&)::{lambda()#1}, , void>((anonymous namespace)::Impl::startProcessingMessages(std::function const&)::{lambda()#1}&&) (std_thread.h:143)
by 0x7CAF1AD: (anonymous namespace)::Impl::startProcessingMessages(std::function const&) (session.cpp:86)
by 0x4BAEEE: dap::Session::bind(std::shared_ptr const&, std::shared_ptr const&, std::function const&) (session.h:450)
by 0x4BAF57: dap::Session::bind(std::shared_ptr const&, std::function const&) (session.h:455)
```

When I investigated the call stack, I found it was caused by a termination of the `dispatchingThread` and `recvThread` without `join` procedure.

Finally, I found the root cause is destructor method at "session.cpp:~Impl()" missing the `virtual` keyword.
After modifying `~Impl()` to `virtual ~Impl()`, the issue disappeared.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.