Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gdb debug with segfault #577

Open
CanftIn opened this issue Aug 7, 2024 · 0 comments
Open

Gdb debug with segfault #577

CanftIn opened this issue Aug 7, 2024 · 0 comments

Comments

@CanftIn
Copy link

CanftIn commented Aug 7, 2024

(base)  canftin@DESKTOP-4QK14RE  ~/workspace/codon_ws/codon/build> gdb -args codon run ../.vscode/debug/test_fib.py
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from codon...
(gdb) r
Starting program: /home/canftin/workspace/codon_ws/codon/build/codon run ../.vscode/debug/test_fib.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007fffef33107d in GC_find_limit_with_bound (p=0x555555762918 "", up=0, bound=0x0)
    at /home/canftin/workspace/codon_ws/codon/build/_deps/bdwgc-src/os_dep.c:1008
1008                    GC_noop1((word)(*result));
(gdb) bt
#0  0x00007fffef33107d in GC_find_limit_with_bound (p=0x555555762918 "", up=0, bound=0x0)
    at /home/canftin/workspace/codon_ws/codon/build/_deps/bdwgc-src/os_dep.c:1008
#1  0x00007fffef330ea0 in GC_find_limit (p=0x555555762918, up=0) at /home/canftin/workspace/codon_ws/codon/build/_deps/bdwgc-src/os_dep.c:1020
#2  0x00007fffef330e51 in GC_init_linux_data_start () at /home/canftin/workspace/codon_ws/codon/build/_deps/bdwgc-src/os_dep.c:459
#3  0x00007fffef32e8d7 in GC_init () at /home/canftin/workspace/codon_ws/codon/build/_deps/bdwgc-src/misc.c:1207
#4  0x00007fffef332d59 in GC_add_roots (b=0x7fffefd39000, e=0x7fffefd3a000) at /home/canftin/workspace/codon_ws/codon/build/_deps/bdwgc-src/mark_rts.c:153
#5  0x00007fffef2b83fd in seq_gc_add_roots (start=0x7fffefd39000, end=0x7fffefd3a000) at /home/canftin/workspace/codon_ws/codon/codon/runtime/lib.cpp:212
#6  0x00007ffff08f4aac in codon::BoehmGCJITLinkMemoryManager::allocate(llvm::jitlink::JITLinkDylib const*, llvm::jitlink::LinkGraph&, llvm::unique_function<void (llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc> > >)>) (this=0x55555c23bb30, JD=0x555557d74bd8, G=..., OnAllocated=...) at /home/canftin/workspace/codon_ws/codon/codon/compiler/memory_manager.cpp:193
#7  0x00007ffff48a85ae in llvm::jitlink::JITLinkerBase::linkPhase1(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase> >) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#8  0x00007ffff4891bf5 in llvm::jitlink::link_ELF_x86_64(std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph> >, std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext> >) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#9  0x00007ffff485ff35 in llvm::jitlink::link_ELF(std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph> >, std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext> >) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#10 0x00007ffff48346e2 in llvm::jitlink::link(std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph> >, std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext> >) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#11 0x00007ffff35866ba in llvm::orc::ObjectLinkingLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >) ()
   from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#12 0x00007ffff358f3d2 in llvm::orc::ObjectTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >) ()
   from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#13 0x00007ffff35d1b41 in llvm::orc::IRCompileLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#14 0x00007ffff35d23cb in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#15 0x00007ffff35d23cb in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#16 0x00007ffff35da21c in llvm::orc::BasicIRLayerMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#17 0x00007ffff352500a in llvm::orc::MaterializationTask::run() () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#18 0x00007ffff350a1dc in void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> > >::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >)>(void*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >&)
--Type <RET> for more, q to quit, c to continue without paging--
    () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#19 0x00007ffff3525ebd in llvm::orc::ExecutionSession::dispatchOutstandingMUs() () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#20 0x00007ffff352ae6c in llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) ()
   from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#21 0x00007ffff352c265 in llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#22 0x00007ffff3517cc6 in llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, llvm::Error) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#23 0x00007ffff352628e in llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef> > >)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) ()
   from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#24 0x00007ffff35264cd in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet, llvm::orc::LookupKind, llvm::orc::SymbolState, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) () from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#25 0x00007ffff3526915 in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolStringPtr, llvm::orc::SymbolState) ()
   from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#26 0x00007ffff3559ed9 in llvm::orc::LLJIT::lookupLinkerMangled(llvm::orc::JITDylib&, llvm::orc::SymbolStringPtr) ()
   from /home/canftin/workspace/codon_ws/codon/build/libcodonc.so
#27 0x00007ffff0899bb8 in llvm::orc::LLJIT::lookupLinkerMangled (this=0x555557762ba0, JD=..., Name=...)
    at /home/canftin/workspace/codon_ws/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h:164
#28 0x00007ffff0899afd in llvm::orc::LLJIT::lookup (this=0x555557762ba0, JD=..., UnmangledName=...)
    at /home/canftin/workspace/codon_ws/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h:176
#29 0x00007ffff08943e4 in llvm::orc::LLJIT::lookup (this=0x555557762ba0, UnmangledName=...)
    at /home/canftin/workspace/codon_ws/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h:181
#30 0x00007ffff0d666ff in codon::ir::LLVMVisitor::run (this=0x55555580a550, args=std::vector of length 1, capacity 1 = {...},
--Type <RET> for more, q to quit, c to continue without paging--
    libs=std::vector of length 0, capacity 0, envp=0x0) at /home/canftin/workspace/codon_ws/codon/codon/cir/llvm/llvisitor.cpp:1261
#31 0x00005555555eae27 in runMode (args=std::vector of length 2, capacity 2 = {...}) at /home/canftin/workspace/codon_ws/codon/codon/app/main.cpp:244
#32 0x00005555555eddb5 in main (argc=3, argv=0x7fffffffde18) at /home/canftin/workspace/codon_ws/codon/codon/app/main.cpp:454

python file:

(base)  canftin@DESKTOP-4QK14RE~/workspace/codon_ws/codon/build> cat ../.vscode/debug/test_fib.py
from time import time

def fib(n):
    return n if n < 2 else fib(n - 1) + fib(n - 2)

t0 = time()
ans = fib(40)
t1 = time()
print(f'Computed fib(40) = {ans} in {t1 - t0} seconds.')

only exec command will not segfault:

(base)  canftin@DESKTOP-4QK14RE  ~/workspace/codon_ws/codon/build> codon run ../.vscode/debug/test_fib.py
Computed fib(40) = 102334155 in 0.534422 seconds.

environment:
Windows WSL Ubuntu 24.04

build command:

cmake .. -G Ninja \
    -DCMAKE_BUILD_TYPE=Debug \
    -DLLVM_DIR=/home/canftin/workspace/codon_ws/llvm-project/build/lib/cmake/llvm \
    -DCMAKE_C_COMPILER=clang \
    -DCMAKE_CXX_COMPILER=clang++ -DCODON_GPU=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant