На x86 GDB использует некоторые специальные аппаратные ресурсы (регистры отладки?) Для установки точек наблюдения.В некоторых ситуациях, когда этих ресурсов недостаточно, GDB устанавливает точку наблюдения, но она не работает.Есть ли способ программно контролировать доступность этих ресурсов в Linux?Может быть, какая-то информация в procfs или что-то.Мне нужна эта информация, чтобы выбрать машину в пуле для отладки.
Из внутренних данных GDB:"Поскольку они зависят от аппаратных ресурсов, количество аппаратных точек останова может быть ограничено; когда пользователь запрашивает больше, gdb начнет пытаться устанавливать программные точки останова. (На некоторых архитектурах, особенно 32-битных платформах x86, gdb не всегда может знать, достаточно ли аппаратных ресурсов для вставки всех аппаратных точек останова и точек наблюдения. На этих платформах gdb выводит сообщение об ошибкетолько когда отлаживаемая программа продолжается.) "
" Запрошено слишком много разных точек наблюдения. (На некоторых архитектурах эту ситуацию невозможно обнаружить, пока не будет возобновлена отлаженная программа.) Обратите внимание, что используются регистры отладки x86как для аппаратных точек останова, так и для точек наблюдения, поэтому установка слишком большого количества аппаратных точек останова может привести к сбою вставки точки наблюдения. "
" 32-разрядные процессоры Intel x86 оснащены специальными отладочными регистрами, разработанными для облегчения отладки. gdb prпредоставляет общую библиотеку функций, которую порты на базе x86 могут использовать для реализации поддержки точек наблюдения и аппаратных точек останова. "