[lldb-dev] frame variable outputs nothing

Azat Khuzhin a3at.mail at gmail.com
Sun Mar 22 09:26:05 PDT 2015


On Sun, Mar 22, 2015 at 05:16:21PM +0100, Mikkel Eriksen wrote:
> So if I understand the calling conventions correctly (MacOS X 10.10.2 on
> Intel Core 2 Duo) the three arguments are in order ($0 = pointer to Blitz
> class, $1 = QImage &img, $2 = int radius):
> 
> (lldb) p $rdi
> (unsigned long) $0 = 4470045704
> (lldb) p $rsi
> (unsigned long) $1 = 4470045672
> (lldb) p $rdx
> (unsigned long) $2 = 3

Looks correct.

> 
> How do I inspect the member variables of the QImage?

I guess that your binary is linked with qt. So it will be better to just
install debugging symbols for qt and this must helps.

> 
> On Sun, Mar 22, 2015 at 5:04 PM, Azat Khuzhin <a3at.mail at gmail.com> wrote:
> 
> > On Sun, Mar 22, 2015 at 04:55:02PM +0100, Mikkel Eriksen wrote:
> > > I unfortunately do not have source access or debug symbols. Can I use the
> > > method signature to determine the arguments?
> >
> > You could try do it manually, and you could start from [1] (or what ever
> > your arch is).
> >
> > [1] http://en.wikipedia.org/wiki/X86_calling_conventions
> >
> > >
> > > On Sun, Mar 22, 2015 at 4:49 PM, Azat Khuzhin <a3at.mail at gmail.com>
> > wrote:
> > >
> > > > On Sun, Mar 22, 2015 at 04:02:18PM +0100, Mikkel Eriksen wrote:
> > > > > Hi
> > > > >
> > > > > I set a breakpoint and launch an application via lldb, and want to
> > > > inspect
> > > > > the arguments of the method when the breakpoint triggers, however
> > nothing
> > > > > shows:
> > > > >
> > > > > (lldb) thread backtrace
> > > > > * thread #20: tid = 0x1352c6, 0x00000001001eb510
> > > > > Application`Blitz::sharpen(QImage&, int), name =
> > 'VolumeTabSlotFilter',
> > > >
> > > > Here you have only types, but not values, seems that you don't have
> > > > debug symbols, no?
> > > >
> > > > > stop reason = breakpoint 2.1
> > > > >   * frame #0: 0x00000001001eb510 Application`Blitz::sharpen(QImage&,
> > int)
> > > > >     frame #1: 0x00000001001dca79 Application`Filter::sharpen(QImage)
> > + 25
> > > > >     frame #2:
> > > > > 0x000000010007bbd1 Application`VolumeTab::slotFilter_sharpen() + 145
> > > > >     frame #3: 0x0000000102dcb80f
> > QtCore`QMetaObject::activate(QObject*,
> > > > > int, int, void**) + 2591
> > > > >     frame #4: 0x0000000100080615
> > Application`VolumeTabSlotFilter::run() +
> > > > > 309
> > > > >     frame #5: 0x0000000102b963e3 QtCore`QThreadPrivate::start(void*)
> > +
> > > > 339
> > > > >     frame #6: 0x00007fff8f80f268
> > libsystem_pthread.dylib`_pthread_body +
> > > > 131
> > > > >     frame #7: 0x00007fff8f80f1e5
> > libsystem_pthread.dylib`_pthread_start +
> > > > > 176
> > > > >     frame #8: 0x00007fff8f80d41d
> > libsystem_pthread.dylib`thread_start +
> > > > 13
> > > > > (lldb) frame variable
> > > > > (lldb)
> > > > >
> > > > > What am I doing wrong? I've tried googling for a solution but have
> > not
> > > > > found anything.
> > > >
> >



More information about the lldb-dev mailing list