google / google/cppdap

possibly memory leak reported by valgrind

Đang mở
#122 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C++
Star
192
Fork
66
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.