<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - register commands require a frame unconditionally"
   href="https://bugs.llvm.org/show_bug.cgi?id=49941">49941</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>register commands require a frame unconditionally
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lldb
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>All Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>lldb-dev@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>llvm@jade.fyi
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>jdevlieghere@apple.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I've been trying out lldb as a replacement for gdb for working on my operating
system, which I develop on qemu with a gdbstub. Part of this involves debugging
code that is run before the initialization of the stack, in early startup code
and exception handlers.

Here is an example thing that can go wrong:

```
(lldb) register write t0 123
error: invalid frame
```

The `register read` command is also affected by this issue. It appears that the
cause of it is that a bunch of the commands in `CommandObjectRegister.cpp` are
defined as `eCommandRequiresFrame` when they should handle there not being a
frame present with slightly degraded functionality. It's not that they don't
require a frame at all though: `ExecutionContext::GetRegisterContext` needs a
frame to work, but it should be skipped if one is unavailable, which it is not
currently.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>