2016-06-05 4 views
0

Я пытаюсь найти источник incorrect runtime cpu feature reporting. Я вполне уверен, что это связано с C++ "As-If-Broken" rule, где язык позволяет компилятору принять правильную программу и превратить ее в неправильную программу.Установить точку отсчета для чтения-записи с помощью GDB?

В соответствии с 5.1.2 Setting Watchpoints:

Установить точку наблюдения для выражения. gdb будет разбиваться, когда выражение expr записывается программой и изменяется его значение. Самый простой (и самый популярный) использование этой команды, чтобы наблюдать значение одной переменной:

(GDB) смотреть Foo

Обратите внимание на те точки наблюдения предназначены для доступа к записи, но не для чтения и записи доступ.

Я хотел бы установить точку наблюдения за чтением и записью на переменную, которая устанавливается при запуске в функции с __attribute__(constructor), а затем читать несколько раз после определения функций. Я хочу сделать это, чтобы убедиться, что оптимизатор удаляет вызовы и, возможно, определяет, сколько вызовов удаляется.

Как установить точку наблюдения чтения и записи с помощью GDB?

ответ

1

Как установить точку наблюдения за чтением и записью с помощью GDB?

(gdb) help awatch 

От the manual:

awatch [-l|-location] expr [thread thread-id] [mask maskvalue] 

Set a watchpoint that will break when expr is either read from 
or written into by the program.