[Lldb-commits] [PATCH] D66654: Prevent D66398 `TestDataFormatterStdList`-like regressions in the future

Jan Kratochvil via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Aug 23 08:00:44 PDT 2019

jankratochvil created this revision.
jankratochvil added reviewers: labath, JDevlieghere, granata.enrico.
jankratochvil added a project: LLDB.
Herald added a subscriber: lldb-commits.

The sanity checking part <https://reviews.llvm.org/D66398?id=216585#inline-597273> is improved here to use some better error channel than original `llvm::errs()`.
With this patch (and without its `TestDataFormatterAdv.py` fix) one gets:

  runCmd: frame variable int_array
  output: (int [5]) int_array = <Two regexes ("int \[[0-9]+\]" and "int \[[0-9]\]") ambiguously match the same string "int [5]".>

I understand one could pass some better abstracted error-reporting interface instead of `ValueObject` itself but that would require some more code (interface definition, inheritance etc.).
With this alternative patch <https://people.redhat.com/jkratoch/regexlistambiguouscheck-module.patch> one gets:

  runCmd: frame variable int_array
  output: (int [5]) int_array = ([0] = -1, [1] = 2, [2] = 3, [3] = 4, [4] = 5)
   = no formatter applied
  and on console:
  error: a.out Two regexes ("int \[[0-9]+\]" and "int \[[0-9]\]") ambiguously match the same string "int [5]".

But I think the alternative patch is worse than this one - for example maybe the variable does not come from a file/module (can it really happen?) and then there would be no way to print the error.




-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66654.216847.patch
Type: text/x-patch
Size: 12064 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190823/9cd9ab3a/attachment.bin>

More information about the lldb-commits mailing list