Точки останова GDB неточны на Mac - PullRequest
0 голосов
/ 10 октября 2018

Я недавно использовал GDB на Mac, но иногда точки останова неверны, так что если я назначаю точку останова и запускаю GDB, иногда пропускается точка останова или разрывы на неправильной строке.Может кто-нибудь мне помочь?Я пытался найти простейший случай проблемы ниже.txt

1 cmake_minimum_required (VERSION 3.0)
2
3
4 file(GLOB SOURCES "src/*.cpp")
5 set(CMAKE_BUILD_TYPE Debug)
6 
7 add_executable(main ${SOURCES})
8
9 target_include_directories(main PUBLIC include)

Если я пытаюсь установить точку останова в строке main.cpp 4, где строка назначается и запускается main в gdb, она останавливается на строке 5. Я думаю, что это происходит, когда используются стандартные заголовкииспользуемый.Если я изменю строку 4 на простое присвоение, такое как int i = 0; точка останова останавливается на строке 4. Как и ожидалось,

У меня есть:

Версия Mac High Sierra 10.13.6

CMakeVersion: 3.12.0

Версия GDB: 8.0.1 (установлена ​​с помощью homebrew)

Спасибо за любую помощь заранее.

1 Ответ

0 голосов
/ 11 октября 2018

GDB иногда пропускает точку останова или разрывы на неправильной строке

В общем, это происходит, когда код создается с оптимизацией.

Я знаю, что вывыбрано CMAKE_BUILD_TYPE Debug, но, возможно, по какой-то причине оптимизированная сборка все еще выполняется?

...