Получить информацию об адресе с помощью gdb

При запуске strace в приложении Java я некоторое время замечал системный вызов (в основном futex).

futex(0x7f8578001fd4, FUTEX_WAIT_PRIVATE, 1311, NULL) = 0 <15.082094> 

Я действительно хочу понять, что ожидание на фьютексе для каких общих ресурсов здесь.

Но я не знаю, как?

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

Может кто-нибудь помочь мне понять, как найти ответ, на который я смотрю.


person Ratatouille    schedule 10.03.2018    source источник


Ответы (1)


Операция фьютекса ожидает, пока другой поток освободит блокировку. Сначала вам следует взглянуть на инструменты, поддерживающие Java, чтобы убедиться, что это блокировка Java высокого уровня. Возможно, даже отправив SIGQUIT (достаточно нажать Ctrl+\) для этого.

person Florian Weimer    schedule 10.03.2018