Let me show you a snippet of a lldb debug session in progress in my ObjC
variant:

```
-100000,100000,v,18.48
Process 45774 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = step in
    frame #0: 0x0000000100000e2a multiple.debug`+[Foo
long:int:char:float:](self=Foo, _cmd=<no value available>,
_param=0x00007fff5fbff948) at multiple.m:15
   12            char:(char) c
   13           float:(float) d
   14   {
   15      printf( "%ld,%d,%c,%.2f\n", a, b, c, d);
-> 16   }
   17   
   18   @end
(lldb) p *_param
(p.long:int:char:float:) $2 = (a = -100000, b = 100000, c = 'v', d =
18.4799995)
```

You can see that the parameter values `a,b,c,d` are actually fields of
a struct parameter `_param`. `_param` uniformly appears as the third
parameter after `self` and `_cmd`. `p _param->a` works of course, but it
would be nice to be able to say 'p a', since in the source code one sees
only `a`. `_param` is more or less an implementation detail.

A clue how to achieve this, would be very much appreciated.

Ciao
   Nat!


[*] except, if it's a picture of thousand words :)

https://www.mulle-kybernetik.com/weblog/2015/mulle_objc_meta_call_convention.html
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to