[lldb-dev] Fwd: lldb doesn't work on centos7

陶征霖 via lldb-dev lldb-dev at lists.llvm.org
Tue Nov 24 18:24:07 PST 2015


Hi Pavel,

Thanks for your reply. Seems lldb not finding the variable in the first
place.

* thread #1: tid = 154, 0x0000000000400e5e a.out`main + 94 at t.cpp:5, name
= 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x0000000000400e5e a.out`main + 94 at t.cpp:5
   2       using namespace std;
   3       int main() {
   4          string s = "aa";
-> 5          cout << s;
   6       }
(lldb) frame variable --raw-output s
(std::__1::string) s = {}

I added -fno-limit-debug-info in my test, and it works now. But why?

Thanks,
Zhenglin


2015-11-24 19:21 GMT+08:00 Pavel Labath <labath at google.com>:

> HI,
>
> a couple of random shots in the dark:
>
> - could you paste the output of "frame variable --raw-output s"? (This
> disables lldb's type formatters. The goal is to see if the problem is
> in the formatter, or in lldb not finding the variable in the first
> place).
>
> - could you compile your test executable with -fno-limit-debug-info
> and see if that helps?
>
> pl
>
>
> On 23 November 2015 at 02:15, 陶征霖 via lldb-dev <lldb-dev at lists.llvm.org>
> wrote:
> >
> > ---------- Forwarded message ----------
> > From: 陶征霖 <zhenglin.taozl at gmail.com>
> > Date: 2015-11-20 23:10 GMT+08:00
> > Subject: lldb doesn't work on centos7
> > To: llvm-dev at lists.llvm.org
> >
> >
> > Hi,
> >
> > I build llvm+clang+lldb 3.7.0 from source code on centos7, the build
> command
> > is "cmake -DCMAKE_BUILD_TYPE=Release
> > -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DLLVM_LIBDIR_SUFFIX=64", there
> is
> > no error during building process.
> >
> > And then I compile following c++ code using command "clang++ -std=c++11
> > -stdlib=libc++ -lc++abi -g t.cpp":
> > // t.cpp
> > #include <iostream>
> > using namespace std;
> > int main() {
> >    string s = "aa";
> >    cout << s;
> > }
> > Try lldb to debug a.out, found that I can't print string s which shows
> > empty:
> > lldb a.out
> > (lldb) target create "a.out"
> > Current executable set to 'a.out' (x86_64).
> > (lldb) l
> >    4    int main() {
> >    5       string s = "aa";
> >    6       cout << s;
> >    7    }
> > (lldb) b 6
> > Breakpoint 1: where = a.out`main + 94 at t.cpp:6, address =
> > 0x0000000000400e5e
> > (lldb) r
> > Process 150 launched: '/root/a.out' (x86_64)
> > Process 150 stopped
> > * thread #1: tid = 150, 0x0000000000400e5e a.out`main + 94 at t.cpp:6,
> name
> > = 'a.out', stop reason = breakpoint 1.1
> >     frame #0: 0x0000000000400e5e a.out`main + 94 at t.cpp:6
> >    3    using namespace std;
> >    4    int main() {
> >    5       string s = "aa";
> > -> 6       cout << s;
> >    7    }
> > (lldb) p s
> > (std::__1::string) $0 = {}
> >
> > Could you please help point out what's wrong in my env? Thanks.
> >
> > Thanks,
> > Zhenglin
> >
> > _______________________________________________
> > lldb-dev mailing list
> > lldb-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151125/be19e98b/attachment.html>


More information about the lldb-dev mailing list