Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLDB fails to step no debug info functions on Arm/Windows #56292

Open
omjavaid opened this issue Jun 29, 2022 · 1 comment
Open

LLDB fails to step no debug info functions on Arm/Windows #56292

omjavaid opened this issue Jun 29, 2022 · 1 comment

Comments

@omjavaid
Copy link
Contributor

omjavaid commented Jun 29, 2022

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.

@llvmbot
Copy link
Collaborator

llvmbot commented Jun 29, 2022

@llvm/issue-subscribers-lldb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants