mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-23 21:45:46 -04:00

Summary: This fixes the case where a user tries to set a breakpoint on a source line outside of any function (e.g. because that code is #ifdefed out, or the compiler did not emit code for the function, etc.) and we would silently move the breakpoint to the next function. Now we check whether the line range of the resolved symbol context function matches the original line number. We reject any breakpoint locations that appear to move the breakpoint into a new function. This filtering only happens if we have full debug info available (e.g. in case of -gline-tables-only compilation, we still set the breakpoint on the nearest source line). Reviewers: jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30817 llvm-svn: 297817
31 lines
1019 B
C++
31 lines
1019 B
C++
//===-- main.cpp ------------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include <cstdio>
|
|
|
|
namespace ns
|
|
{
|
|
int foo1(void) { printf("In foo1\n"); return 1; }
|
|
int foo2(void) { printf("In foo2\n"); return 2; }
|
|
}
|
|
|
|
int x;
|
|
int main(int argc, char const *argv[]) { // BP_main_decl
|
|
printf("Print a formatted string so that GCC does not optimize this printf call: %s\n", argv[0]);
|
|
// This is a long comment with no code inside
|
|
// This is a long comment with no code inside
|
|
// This is a long comment with no code inside
|
|
// BP_in_main
|
|
// This is a long comment with no code inside
|
|
// This is a long comment with no code inside
|
|
// This is a long comment with no code inside
|
|
x = ns::foo1() + ns::foo2();
|
|
return 0; // BP_return
|
|
}
|