jingham added a comment.

The first of the commands you showed presents info we definitely should add to 
type lookup.  I actually have a bug around to do that, but it hasn't risen to 
the top of my queue because it's trivial to do with the SB API's so every time 
I've needed that info I get it from script.  Selfish me...

The second command is done in lldb with "memory read -t TYPE", and you can also 
use the "-c COUNT" argument to treat the memory as an array of COUNT elements 
of the TYPE:

  (lldb) fr v myFoo
  (foo *) myFoo = 0x0000000100400000
  (lldb) memory read -t foo 0x0000000100400000
  (foo) 0x100400000 = {
    First = 0
    Second = 0
  }
  (lldb) memory read -t foo 0x0000000100400000 -c 10
  (foo) 0x100400000 = {
    First = 0
    Second = 0
  }
  (foo) 0x100400008 = {
    First = 1
    Second = 10
  }
  (foo) 0x100400010 = {
    First = 2
    Second = 20
  }

if you want to also see the types of all the subelements add the -T flag, and 
if you want to see all the memory locations of the subelements, add the -L flag:

  (lldb) memory read -t foo 0x0000000100400000 -c 10 -T -L
  0x0000000100400000: (foo) 0x100400000 = {
  0x0000000100400000:   (int) First = 0
  0x0000000100400004:   (int) Second = 0
  }
  0x0000000100400008: (foo) 0x100400008 = {
  0x0000000100400008:   (int) First = 1
  0x000000010040000c:   (int) Second = 10
  }

BTW, the latter two flags have the same meaning pretty much wherever we print 
values (expression, frame var...)


https://reviews.llvm.org/D53731



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to