https://llvm.org/bugs/show_bug.cgi?id=31212
Bug ID: 31212 Summary: LLDB steps incorrectly for binaries compiled using GCC 6.2 on Ubuntu 16.10 Product: lldb Version: 3.9 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: All Bugs Assignee: lldb-dev@lists.llvm.org Reporter: eldar.abusali...@jetbrains.com CC: llvm-b...@lists.llvm.org Classification: Unclassified Step-over and step-in skip source lines and behave more like step-out for code compiled on Ubuntu 16.10 using GCC 6.2, which by default compiles with -pie. Everything works correctly when using -fno-pie explicitly. The weird thing is, everything also works fine when compiling on Ubuntu 16.04 using GCC 6.2 from ppa:ubuntu-toolchain-r/test. The issue is also reproducible with binaries compiled on Ubuntu 16.10 using GCC 6.2 which are then debugged on another system, like Ubuntu 16.04. Source code: #include <iostream> void printHello() { std::cout << "Hello, World! from function" << std::endl; std::cout << "Hello, World! from function" << std::endl; std::cout << "Hello, World! from function" << std::endl; } int main() { printHello(); std::cout << "Hello, World! from main()" << std::endl; std::cout << "Hello, World! from main()" << std::endl; std::cout << "Hello, World! from main()" << std::endl; return 0; } Debug session: $ lldb ClionProjects/bug_test/cmake-build-debug/bug_test Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named lldb.embedded_interpreter (lldb) target create "ClionProjects/bug_test/cmake-build-debug/bug_test" Current executable set to 'ClionProjects/bug_test/cmake-build-debug/bug_test' (x86_64). (lldb) b main.cpp:10 Breakpoint 1: where = bug_test`main + 4 at main.cpp:10, address = 0x0000000000000993 (lldb) r Process 2545 launched: '/home/user/ClionProjects/bug_test/cmake-build-debug/bug_test' (x86_64) Process 2545 stopped * thread #1: tid = 2545, 0x0000555555554993 bug_test`main + 4 at main.cpp:10, name = 'bug_test', stop reason = breakpoint 1.1 frame #0: 0x0000555555554993 bug_test`main + 4 at main.cpp:10 7 } 8 9 int main() { -> 10 printHello(); 11 std::cout << "Hello, World! from main()" << std::endl; 12 std::cout << "Hello, World! from main()" << std::endl; 13 std::cout << "Hello, World! from main()" << std::endl; (lldb) s Process 2545 stopped * thread #1: tid = 2545, 0x0000555555554914 bug_test`printHello() + 4 at main.cpp:4, name = 'bug_test', stop reason = step in frame #0: 0x0000555555554914 bug_test`printHello() + 4 at main.cpp:4 1 #include <iostream> 2 3 void printHello() { -> 4 std::cout << "Hello, World! from function" << std::endl; 5 std::cout << "Hello, World! from function" << std::endl; 6 std::cout << "Hello, World! from function" << std::endl; 7 } (lldb) s Hello, World! from function Hello, World! from function Hello, World! from function Process 2545 stopped * thread #1: tid = 2545, 0x0000555555554998 bug_test`main + 9 at main.cpp:11, name = 'bug_test', stop reason = step in frame #0: 0x0000555555554998 bug_test`main + 9 at main.cpp:11 8 9 int main() { 10 printHello(); -> 11 std::cout << "Hello, World! from main()" << std::endl; 12 std::cout << "Hello, World! from main()" << std::endl; 13 std::cout << "Hello, World! from main()" << std::endl; 14 return 0; (lldb) s Hello, World! from main() Hello, World! from main() Hello, World! from main() Process 2545 stopped * thread #1: tid = 2545, 0x00007ffff76a93f1 libc.so.6`__libc_start_main + 241, name = 'bug_test', stop reason = step in frame #0: 0x00007ffff76a93f1 libc.so.6`__libc_start_main + 241 libc.so.6`__libc_start_main: -> 0x7ffff76a93f1 <+241>: movl %eax, %edi 0x7ffff76a93f3 <+243>: callq 0x7ffff76c3320 ; exit 0x7ffff76a93f8 <+248>: xorl %eax, %eax 0x7ffff76a93fa <+250>: jmp 0x7ffff76a9337 ; <+55> (lldb) -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev