<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56292>56292</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            LLDB fails to step no debug info functions on Arm/Windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lldb,
            platform:windows
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          omjavaid
      </td>
    </tr>
</table>

<pre>
    LLDB fails to step in out or over functions with no debug information. Specifically TestStepNoDebug.py fails on Arm/Windows and also stepping over syscalls fails when code is compiled with dwarf because of debug info mismatch between library function and user code.

Consider following code example:
```
#include <cstdlib>
#include <cstring>
#include <string>
#include <fstream>
#include <iostream>

int
product (int x, int y)
{
    int result = x * y;
    return result;
}

int
sum (int a, int b)
{
    int result = a + b;
    return result;
}

int
strange_max (int m, int n)
{
    if (m > n)
        return m;
    else if (n > m)
        return n;
    else
        return 0;
}

int
foo (int i, int j)
{
    if (strange_max (i, j) == i)
        return product (i, j);
    else if (strange_max  (i, j) == j)
        return sum (i, j);
    else
        return product (sum (i, i), sum (j, j));
}

int
main(int argc, char const *argv[])
{

    int array[9];
        memset(array,0,9*sizeof(int));

    array[0] = foo (1238, 78392);
    array[1] = foo (379265, 23674);
    array[2] = foo (872934, 234);
    array[3] = foo (1238, 78392);
    array[4] = foo (379265, 23674);
    array[5] = foo (872934, 234);
    array[6] = foo (1238, 78392);
    array[7] = foo (379265, 23674);
    array[8] = foo (872934, 234);

    return 0;
}

```
Compile with : clang -gdwarf 
Launch executable using LLDB after setting breakpoint on main. Your program should stop at memset line in above code.
Issue thread step-over command and program will run to finish instead of stepping over the memset instruction.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylVk2PmzoU_TWwsSYiJgRYsMgkHanSqJs-qXqrJ2NMcGps5I_J5P36XvORMpmhrdIoCYR7zz3nOraPS1VdiufnwyOqCRcGWYWMZR3iEilnkdJIvTCNaiep5UoadOa2QVKhipXuCGm10i3xoRX62jHKa06JEBf0DzP2K1T6og4-c9VdRgYl0U63AX76xmWlzgYRWSEizEDccXkcKM3F-EpmhJ0bJhFVFUPcwLXtuGDVoKY6E12jklHiDEOqnmlDLTcgjzYQtmcGJQQvNdGXa0c9PeB0X3wVRIcg2g3fe-iXV757JYQ6e2W9APZK2k6wIB7zgm00voefOOaSCgeZQbynxlbAGcSfFqIa6i5EfxmsIcpIuxDl6jbcf3Nph5tOq8pRiwKcwTP0GuA98jeXAOcjIH0cbhC8fEgz4wQg4gN6BdwOcuNZimbWaTlmXSNBeviQ37h24iYTd_lH3ARwj5D7F9xWE3lk_7XkddLQThrkgobaZ4Lk-NMsBY2vkb59o4kJmIwDTva4dgkn3-E-TIt-21it1NQQnxo6_aqh25HwIA_wA-3Hmi9Jnk-fCbTU_ZzkQ5bTEss0SRYZfqdtXqDvBa7js9O16Kzu0sC2hMtptuoj9VDaEL9lSOOJdvD0JUgeg-TwfrjfzmSiNblAau5zr7xR3rLWMAskQwLeR_ABcTvD_2eqHthv5V4rT1UjqNqvknEqrHGcebVpFuf4dgQn0PoGFKc53iYehuNtulmC4RtYluI83gywRVB8j8DNfQKTewRu7xGY3icw-1OB73a6xb3gxov2g1EOPgmGhaiAtYgejoNnDknPBLywAVtj1FlSQroz3uz6YwGprTdjZq1_VIKnfO-Un8hgnX5ZrNC_ymm_6I6atMg0yokKrFx1iMC-2s9qMF3J_JGClGDtc6P9bIxjyDZQtur9_6H3fvD3tj8WwGeqfOZCIO2kP6LUXHLTQEWAABAs_-3ZwTZsovY52vVWP3KGVRFXeZyT0HIr2Eennzfnm9nh5_bsEjotisbazvjDAH6C9xFG2pUr6AB-CPEyXR6gjxOjsISfuG_awE2yxTkOmyJap1lWlrTMKS6zMoqjnGabdbqltMRlvg4FKWG7K_wOg7EQFTgl9tMELp0g1p_BQMB5EOVjySHkBY4wjoBinSVREq_SeJMnZZ7Xm_WGJVUSbCIG_6BYeXkrpY-hLnql0LiBoODGmp9BYgw_SsaKYZ8LibON0oVqT-SF8Crsuyr6ln4AvxX1bw">