<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </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 --- - [Windows] Evaluating arguments gives incorrect values except for frame 0"
   href="https://llvm.org/bugs/show_bug.cgi?id=26265">26265</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[Windows] Evaluating arguments gives incorrect values except for frame 0
          </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>Windows NT
          </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>amccarth@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>TextConditionalBreak.py fails on Windows when trying to evaluate a function
argument in frame 1.

Manual experiments indicates this is problem for arguments in any frame other
than frame 0.  This is observable in expression and backtraces.

(lldb) thread backtrace
* thread #1: tid = 0x1144, 0x0112b08a a.out`c(val=3) + 10 at main.c:39, stop
reason = breakpoint 2.1
  * frame #0: 0x0112b08a a.out`c(val=3) + 10 at main.c:39
    frame #1: 0x0112b03e a.out`a(val=4586500) + 62 at main.c:27
    frame #2: 0x0112b12b a.out`main(argc=0, argv=0x0045fc04) + 139 at main.c:50
    frame #3: 0x0112b88f a.out`$LN27 + 224

Note that the correct value for val in frame #0 is correct (3), but incorrect
in frame #1.

(lldb) thread step-out
(lldb) Process 9808 stopped
* thread #1: tid = 0x1144, 0x0112b03e a.out`a(val=3) + 62 at main.c:27, stop
reason = step out
    frame #0: 0x0112b03e a.out`a(val=3) + 62 at main.c:27
   24       if (val <= 1)
   25           return b(val);
   26       else if (val >= 3)
-> 27           return c(val); // Find the line number where c's parent frame
is a here.
   28
   29       return val;
   30   }
thread back
* thread #1: tid = 0x1144, 0x0112b03e a.out`a(val=3) + 62 at main.c:27, stop
reason = step out
  * frame #0: 0x0112b03e a.out`a(val=3) + 62 at main.c:27
    frame #1: 0x0112b12b a.out`main(argc=3, argv=0x00000003) + 139 at main.c:50
    frame #2: 0x0112b88f a.out`$LN27 + 224

After stepping back out to what was frame #1, and val is now correctly shown.</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>