LINUX.ORG.RU

Отладка обращения к переменной в современных IDE

 ,


0

3

Когда-то давно у меня была ПЭВМ «Микроша» на микропроцессоре КР580ВМ80А. И была там замечательная вещь - символьный отладчик SID.

Так вот, в нем можно было поставить брекпоинт не просто на инструкцию по конкретному адресу, но и на изменение любой переменной. Тоже самое было и в SoftIce под виндой, и в OllyDebugger и называлось «Точка останова при обращении к памяти».

Прошли годы, теперь я кодю в Лялихе. Читаю доки на встроенные дебаггеры NetBeans, QtCreator. И не нахожу даже упоминаний о такой возможности. Это что за мазафака?

★★★★★

man gdb watchpoint

anonymous ()
Ответ на: комментарий от Xintrea

Для студии на мсдн есть что-то на русском (хотя там часто статьи генерятся тупо машинным переводом).

Про остальные не знаю, скорее всего нет.

Неужели просто потыкав в интерфейсе ничего не нашлось?

Midael ★★★★★ ()

Во имя справедливости - в дельфях такое тоже было

hobbit ★★★★★ ()
Ответ на: комментарий от Miguel

именно.
а на русском можно читать про Эльбрус, например. но чота не вставляет.

Iron_Bug ★★★★★ ()
Ответ на: комментарий от Midael

qtcreator - http://doc.qt.io/qtcreator/creator-debug-mode.html

Я наконец-то нашел время, и перевел себе всё по ссылке.

Там ничего не написано про установку брекпоинта на изменение переменной. Вроде как, судя по скриншоту в данной статье, это можно сделать (если имеют в виду под остановом на изменение переменной «Break on memory address», что не факт), но как этим пользоваться - не написано вообще.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

break on data access on address by given expression

Правда судя по всему оно работает только если брейкпоинт задать в рантайме после того как переменная будет определена.

Можно остановиться где-нибудь рядом и либо ручками создать брейкпоинт, либо в watch ткнуть add data breakpoint.

UPD: Вообще в доках на gdb написано, что «You can set a watchpoint on an expression even if the expression can not be evaluated yet.» Мне сложно сделать какой-то вывод на тему того можно ли задавать дата брейкпоинты в c и c++ до запуска, голым gdb я не пользовался никогда.

Midael ★★★★★ ()
Последнее исправление: Midael (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.