[Lldb-commits] [PATCH] D60268: Breakpad: Parse Stack CFI records

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 8 02:40:29 PDT 2019


labath marked 5 inline comments as done.
labath added inline comments.


================
Comment at: source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp:393
+  llvm::StringRef LHS, RHS;
+  while (std::tie(Str, Line) = getToken(Line), !Str.empty()) {
+    if (Str.back() == ':') { // regN
----------------
clayborg wrote:
> clayborg wrote:
> > Do we really need to pull the content apart into separate strings for each register? Seems like a lot of work and 99% of these we will never accessed. Maybe just store the entire string for all registers and be done? 
> You can add an iterator method to the StackCFIRecord record maybe for when you do want to parse each register?
That's a good point. I'll remove the register parsing code from this patch and just store the entire expression as one string(ref). I'll see what's the best api for splitting these up when I get to connecting this with the postfix expression parser.


================
Comment at: source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp:394
+  while (std::tie(Str, Line) = getToken(Line), !Str.empty()) {
+    if (Str.back() == ':') { // regN
+      // Flush the previous expression, if there is one.
----------------
clayborg wrote:
> Does the format specify no space between the register name and the colon?
That is how I interpret the format "spec" <https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md>
```
Each registeri is the name of a register or pseudoregister. Each expression is a Breakpad postfix expression, which may contain spaces, but never ends with a colon.
```
That's not a very good definition because there are many ways one can split up these strings such they "don't end with a colon", but I chose this interpretation, as that's what made most sense to me (and it works for the example files I have lying around). We can always change that if we find a producer doing things slightly differently.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60268/new/

https://reviews.llvm.org/D60268





More information about the lldb-commits mailing list