Re: [lldb-dev] Does LLDB work on Ubuntu 14.04 x86_64?

2016-01-18 Thread Pavel Labath via lldb-dev
Hi,

thanks for the report. Lldb does indeed work on linux x86_64 (and
plenty more), but I think noone tests it with your given combination
of cmake flags. I've managed to reproduce your problem and fix it with
, but please give it a go to make sure
it works for you. If all goes well, we'll get this backported to the
3.8 branch.

cheers,
pl


On 18 January 2016 at 01:54, David Jones via lldb-dev
 wrote:
> I'm trying out the release candidate(?) as follows:
>
> svn co http://llvm.org/svn/llvm-project/llvm/branches/release_38 llvm
> svn co http://llvm.org/svn/llvm-project/cfe/branches/release_38 cfe
> svn co http://llvm.org/svn/llvm-project/lldb/branches/release_38 lldb
>
> cd llvm/tools
> ln -s ../../cfe clang
> ln -s ../../lldb lldb
> cd ..
> mkdir build
> cd build
>
> cmake -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON
> -DCMAKE_INSTALL_PREFIX=/tools/llvm/rel_38
> -DLLVM_TARGETS_TO_BUILD="X86;CppBackend" -DCMAKE_BUILD_TYPE=Release
> -DLLVM_ENABLE_ASSERTIONS=ON ..
> cmake --build . -- -j4
> sudo cmake --build . --target install
>
>
> LLVM fundamentally works: I am able to link the LLVM libraries with my
> application, and my application passes its regression tests.
>
> clang fundamentally works: it is able to compile a program.
>
> But lldb:
>
> dej@slam:~$ export LD_LIBRARY_PATH=/tools/llvm/rel_38/lib
> dej@slam:~$ export PATH=/tools/llvm/rel_38/bin:$PATH
> dej@slam:~$ lldb /bin/ls
> (lldb) target create "/bin/ls"
> Current executable set to '/bin/ls' (x86_64).
> (lldb) r
> Process 13656 launched: '/bin/ls' (x86_64)
> Segmentation fault (core dumped)
>
> dej@slam:~$ gdb lldb core
> ...
> (gdb) bt
> #0  0x7fd9971b5671 in LLVMDisasmInstruction ()
>from /tools/llvm/rel_38/bin/../lib/../lib/libLLVM-3.8.so
> #1  0x7fd999e350c2 in
> AssemblyParse_x86::instruction_length(lldb_private::Address, int&) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #2  0x7fd999e37d08 in
> AssemblyParse_x86::get_non_call_site_unwind_plan(lldb_private::UnwindPlan&)
> () from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #3  0x7fd999e38e95 in
> UnwindAssembly_x86::GetNonCallSiteUnwindPlanFromAssembly(lldb_private::AddressRange&,
> lldb_private::Thread&, lldb_private::UnwindPlan&) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #4  0x7fd999c8693b in
> lldb_private::FuncUnwinders::GetAssemblyUnwindPlan(lldb_private::Target&,
> lldb_private::Thread&, int) ()
>from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #5  0x7fd999c88594 in
> lldb_private::FuncUnwinders::GetUnwindPlanAtNonCallSite(lldb_private::Target&,
> lldb_private::Thread&, int) ()
>from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #6  0x7fd999dfb16d in
> lldb_private::RegisterContextLLDB::GetFullUnwindPlanForFrame() () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #7  0x7fd999dfff90 in
> lldb_private::RegisterContextLLDB::InitializeZerothFrame() () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #8  0x7fd999e01e83 in
> lldb_private::RegisterContextLLDB::RegisterContextLLDB(lldb_private::Thread&,
> std::shared_ptr const&,
> lldb_private::SymbolContext&, unsigned int, lldb_private::UnwindLLDB&) ()
>from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #9  0x7fd999df5d43 in lldb_private::UnwindLLDB::AddFirstFrame() ()
>from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #10 0x7fd999df63d0 in
> lldb_private::UnwindLLDB::DoGetFrameInfoAtIndex(unsigned int, unsigned
> long&, unsigned long&) ()
>from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #11 0x7fd999d1049b in
> lldb_private::StackFrameList::GetFramesUpTo(unsigned int) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #12 0x7fd999d11a23 in
> lldb_private::StackFrameList::GetFrameAtIndex(unsigned int) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #13 0x7fd999ce4ae1 in
> lldb_private::Thread::GetStackFrameAtIndex(unsigned int) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #14 0x7fd999cc839a in
> lldb_private::StopInfoBreakpoint::ShouldStopSynchronous(lldb_private::Event*)
> () from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #15 0x7fd999ce75b3 in
> lldb_private::Thread::ShouldStop(lldb_private::Event*) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #16 0x7fd999cee452 in
> lldb_private::ThreadList::ShouldStop(lldb_private::Event*) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #17 0x7fd999cb505b in
> lldb_private::Process::ShouldBroadcastEvent(lldb_private::Event*) () from
> /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #18 0x7fd999cb5111 in
> lldb_private::Process::HandlePrivateEvent(std::shared_ptr&)
> ()
>from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #19 0x7fd999cb5f73 in lldb_private::Process::RunPrivateStateThread(bool)
> ()
>from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
> #20 0x7fd999b45d67 in
> 

[lldb-dev] Does LLDB work on Ubuntu 14.04 x86_64?

2016-01-17 Thread David Jones via lldb-dev
I'm trying out the release candidate(?) as follows:

svn co http://llvm.org/svn/llvm-project/llvm/branches/release_38 llvm
svn co http://llvm.org/svn/llvm-project/cfe/branches/release_38 cfe
svn co http://llvm.org/svn/llvm-project/lldb/branches/release_38 lldb

cd llvm/tools
ln -s ../../cfe clang
ln -s ../../lldb lldb
cd ..
mkdir build
cd build

cmake -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON
-DCMAKE_INSTALL_PREFIX=/tools/llvm/rel_38
-DLLVM_TARGETS_TO_BUILD="X86;CppBackend" -DCMAKE_BUILD_TYPE=Release
-DLLVM_ENABLE_ASSERTIONS=ON ..
cmake --build . -- -j4
sudo cmake --build . --target install


LLVM fundamentally works: I am able to link the LLVM libraries with my
application, and my application passes its regression tests.

clang fundamentally works: it is able to compile a program.

But lldb:

dej@slam:~$ export LD_LIBRARY_PATH=/tools/llvm/rel_38/lib
dej@slam:~$ export PATH=/tools/llvm/rel_38/bin:$PATH
dej@slam:~$ lldb /bin/ls
(lldb) target create "/bin/ls"
Current executable set to '/bin/ls' (x86_64).
(lldb) r
Process 13656 launched: '/bin/ls' (x86_64)
Segmentation fault (core dumped)

dej@slam:~$ gdb lldb core
...
(gdb) bt
#0  0x7fd9971b5671 in LLVMDisasmInstruction ()
   from /tools/llvm/rel_38/bin/../lib/../lib/libLLVM-3.8.so
#1  0x7fd999e350c2 in
AssemblyParse_x86::instruction_length(lldb_private::Address, int&) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#2  0x7fd999e37d08 in
AssemblyParse_x86::get_non_call_site_unwind_plan(lldb_private::UnwindPlan&)
() from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#3  0x7fd999e38e95 in
UnwindAssembly_x86::GetNonCallSiteUnwindPlanFromAssembly(lldb_private::AddressRange&,
lldb_private::Thread&, lldb_private::UnwindPlan&) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#4  0x7fd999c8693b in
lldb_private::FuncUnwinders::GetAssemblyUnwindPlan(lldb_private::Target&,
lldb_private::Thread&, int) ()
   from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#5  0x7fd999c88594 in
lldb_private::FuncUnwinders::GetUnwindPlanAtNonCallSite(lldb_private::Target&,
lldb_private::Thread&, int) ()
   from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#6  0x7fd999dfb16d in
lldb_private::RegisterContextLLDB::GetFullUnwindPlanForFrame() () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#7  0x7fd999dfff90 in
lldb_private::RegisterContextLLDB::InitializeZerothFrame() () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#8  0x7fd999e01e83 in
lldb_private::RegisterContextLLDB::RegisterContextLLDB(lldb_private::Thread&,
std::shared_ptr const&,
lldb_private::SymbolContext&, unsigned int, lldb_private::UnwindLLDB&) ()
   from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#9  0x7fd999df5d43 in lldb_private::UnwindLLDB::AddFirstFrame() ()
   from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#10 0x7fd999df63d0 in
lldb_private::UnwindLLDB::DoGetFrameInfoAtIndex(unsigned int, unsigned
long&, unsigned long&) ()
   from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#11 0x7fd999d1049b in
lldb_private::StackFrameList::GetFramesUpTo(unsigned int) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#12 0x7fd999d11a23 in
lldb_private::StackFrameList::GetFrameAtIndex(unsigned int) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#13 0x7fd999ce4ae1 in
lldb_private::Thread::GetStackFrameAtIndex(unsigned int) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#14 0x7fd999cc839a in
lldb_private::StopInfoBreakpoint::ShouldStopSynchronous(lldb_private::Event*)
() from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#15 0x7fd999ce75b3 in
lldb_private::Thread::ShouldStop(lldb_private::Event*) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#16 0x7fd999cee452 in
lldb_private::ThreadList::ShouldStop(lldb_private::Event*) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#17 0x7fd999cb505b in
lldb_private::Process::ShouldBroadcastEvent(lldb_private::Event*) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#18 0x7fd999cb5111 in
lldb_private::Process::HandlePrivateEvent(std::shared_ptr&)
()
   from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#19 0x7fd999cb5f73 in
lldb_private::Process::RunPrivateStateThread(bool) ()
   from /tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#20 0x7fd999b45d67 in
lldb_private::HostNativeThreadBase::ThreadCreateTrampoline(void*) () from
/tools/llvm/rel_38/bin/../lib/liblldb.so.3.8.0
#21 0x7fd9990e6182 in start_thread (arg=0x7fd990f62700)
at pthread_create.c:312
#22 0x7fd9983da47d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Is LLDB expected to be working on Linux x64_64?
___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev