GDB конвертировать устойчивое значение часов в фактическое время - PullRequest
1 голос
/ 18 мая 2019

У меня есть файл ядра для кода C ++, который показывает значение std :: chrono :: stable_clock :: now () следующим образом в gdb:

__d = {__r = 783605893786420}

как мне конвертировать его в UTC?

1 Ответ

2 голосов
/ 18 мая 2019

Единицы steady_clock на вашей платформе - наносекунды.

783605893786420ns - это время, прошедшее с эпохи steady_clock.

783605893786420ns - это то же время, что и 9 дней, 1 час, 40 минут и 5,893786420 секунд.

Таким образом, для этих часов эпоха составляла 9 дней, 1 час, 40 минут и 5,893786420 секунд до того, как был вызван steady_clock::now().

Единственный способ преобразовать это в UTC, если вы знаете связь между UTC и временем за 9 дней, 1 час, 40 минут и 5,893786420 секунд до того, как был сделан этот вызов. Скорее всего, это будет последняя загрузка вашей машины. Если по какой-либо причине вы знаете, в какое время UTC была загружена ваша машина, вы можете добавить к этому времени 9 дней, 1 час, 40 минут и 5,893786420 секунд, чтобы преобразовать 783605893786420 в UTC.

В будущем, если вы хотите узнать время по Гринвичу, используйте system_clock.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...