There was a question on the dev list a while ago about to print out all the valid ranges of a variable. That's a useful bit of info if you're trying to figure out where you could break to actually see or change a variable's value in an optimized function. I think that's the motivation for the change, so just showing the range that encompasses the address wouldn't satisfy that initial impetus for the change.
It is a little awkward to put it in "image lookup -va" however, and odder to have it be part of the printing of an Address. It seems more like something you should ask a function? Jim > On Feb 17, 2022, at 12:57 AM, Pavel Labath via Phabricator > <revi...@reviews.llvm.org> wrote: > > labath added a comment. > > I suppose one could ask the question whether this should be printing the > entire set range of ranges, or just the one > > > > ================ > Comment at: lldb/source/Commands/Options.td:960 > "target modules.">; > + def target_modules_lookup_variables_ranges : > Option<"show-variables-ranges", > + "R">, GroupRange<1, 6>, Desc<"Dump valid ranges of variables (must be > used " > ---------------- > > > > ================ > Comment at: lldb/source/Commands/Options.td:961 > + def target_modules_lookup_variables_ranges : > Option<"show-variables-ranges", > + "R">, GroupRange<1, 6>, Desc<"Dump valid ranges of variables (must be > used " > + "in conjunction with --verbose">; > ---------------- > A not widely known fact: It is possible to produce an long option without a > short version by using an non-printable character in place of the short > option. You can see and example of that in `disassemble --force`, defined in > this file. > > If we are considering this a niche option, then maybe we don't need to use a > random character just to have a short version. > > > ================ > Comment at: lldb/test/Shell/SymbolFile/DWARF/x86/debug_loc.s:16 > +# CHECK-LABEL: image lookup -v -a 0 -R > +# CHECK: Variable: {{.*}}, name = "x0", type = "int", location = DW_OP_reg5 > RDI, decl = , valid ranges = > +# CHECK: Variable: {{.*}}, name = "x1", type = "int", location = <empty>, > decl = , valid ranges = > ---------------- > I don't think that the information itself is out of place here, but I think > it can get confusing when one sees it like this, next to the `location` > field. So, if we had an output like `location = RDI, valid ranges = [0, 20)`, > I think one would/could read it as "the variable is in RDI from PC=0 to > PC=20", but what it _really_ is telling you is "the variable (or its value -- > I'm not sure) exists between PC=0 and PC=20, *and* for the exact PC that you > are querying (0 in this case), it's value happens to be in RDI". > > We could try to come up with a way to make this less confusing, but maybe we > could just sidestep this problem and just print this information in the > `image dump symfile` output. > > > ================ > Comment at: lldb/test/Shell/SymbolFile/DWARF/x86/debug_loc.s:27 > # CHECK: Function{ > # CHECK: Variable{{.*}}, name = "x0", {{.*}}, scope = parameter, location > = > # CHECK-NEXT: [0x0000000000000000, 0x0000000000000001): DW_OP_reg5 RDI > ---------------- > If you printed the information here, then there would be no (or less) > confusion as the location field contains explicit range information. > Additionally, the `image dump symfile` output is so verbose, than an extra > field does not make a difference. > > (I'm sorry, I know it was I who suggested using `image lookup`, but I did not > realize you would be adding an extra argument because of that.) > > > Repository: > rG LLVM Github Monorepo > > CHANGES SINCE LAST ACTION > https://reviews.llvm.org/D119963/new/ > > https://reviews.llvm.org/D119963 > _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits