Отладка в VS Code с помощью lldb, как установить точку останова на символе, для которого у меня нет источника?

У меня есть какая-то ошибка управления памятью, которая, конечно, происходит случайным образом каждые 3 дня или около того при 100% нагрузке. Это на OSX, но все это просто, переносимо С++ 11:

code(12404,0x70000aace000) malloc: *** error for object 0x105088e00: pointer being freed was not allocated
                         *** set a breakpoint in malloc_error_break to debug
  Abort trap: 6

Я использую код Visual Studio, а отладчиком является lldb; чего я не знаю, так это того, как установить точку останова на malloc_error_break, чтобы я мог посмотреть на стек вызовов, когда это произойдет.

VS Code позволяет вам устанавливать точки останова в строках исходного кода, но у меня нет исходного кода для кода этой системной библиотеки, только символ. Но если бы я мог сломаться там, независимо от того, что у меня нет исходного кода для этой функции, я мог бы проверить стек вызовов.

Итак, как установить точку останова в lldb в Visual Studio Code на OSX High Sierra на произвольном символе без исходного кода?

Спасибо!


person Dave    schedule 20.12.2018    source источник


Ответы (2)


Не уверен насчет части кода Visual Studio, но в lldb вы можете сделать это с помощью:

br s -F malloc_error_break

или просто

b malloc_error_break
person Kamil.S    schedule 20.12.2018

Если вы перейдете к Debug-›New Breakpoint-›Function Breakpoint, вы можете добавить эту точку останова, введя имя функции (malloc_error_break).

person buszkiraly    schedule 15.03.2021