[PATCH] D44004: [ELF] - Show data and assignment commands in the map file.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 8 08:05:21 PST 2018


grimar added inline comments.


================
Comment at: ELF/LinkerScript.h:113
+  std::string CommandString;
+  // The offset value within the section before execution of assignment.
+  unsigned Offset;
----------------
ruiu wrote:
> ruiu wrote:
> > Please insert a blank line before a comment.
> What do you mean by "before execution of assignment"? Before you assign a command to an output section, it doesn't have any address.
I mean that if we have a section description:

```
0  .foo : {
1    *(.bar)
2    . += 0x123;
3  }
```

Then at line 2, we have an assignment to Dot.
We handle commands one by one and offset before we process 
("before execution of assignment (//command//)" in my wording) the assignment will
be equal to the size of .bar. That offset is saved to Offset member.
After execution of assignment command, offset will be different and `Size` below
stores the difference.

I rewrote the comment slightly.


================
Comment at: ELF/MapFile.cpp:154
+      if (auto *Cmd = dyn_cast<ByteCommand>(Base)) {
+        writeHeader(OS, OSec->Addr + Cmd->Offset, Cmd->Size, Cmd->Size);
+        OS << Indent1 << Cmd->CommandString << '\n';
----------------
ruiu wrote:
> You are passing `Cmd->Size` as an alignment which seems wrong to me.
Right, that was incorrect, changed to 1.


================
Comment at: ELF/ScriptParser.cpp:118-119
+  // Concatenates tokens in a [FirstTok, LastTok] into string with Prefix.
+  std::string buildCommandString(StringRef Prefix, size_t FirstTok,
+                                 size_t LastTok);
+
----------------
ruiu wrote:
> FirstTok and LastTok are not tokens but positions, so you should avoid "Tok".
Not sure what is wrong here honestly. 
I think `first` and `last` can be both adjectives and nouns. I meant that they are adjectives describing the
tokens and hence they are not positions here I think.
I renamed to `First`/`Last` though as such naming is also OK for me.


https://reviews.llvm.org/D44004





More information about the llvm-commits mailing list