170 похожих чатов

Всем привет. У меня тут какое-то странное поведение в 32

битной сборке версии под Windows (которые приводят к падениям по ассерту в релиз версии у пользователей, сам я не могу такое воспроизвести). Я поймал в логе это неадекватное поведение:

https://github.com/telegramdesktop/tdesktop/commit/868015da251e15fc141c31a8235c4c2207961c53#diff-9df39ac4d87e709081853fbbb14803cd3adc4dfbae66e8f16affe210bd2ad41eR851-R858

Выдаёт (options.speed тут double, crl::time тут std::int64_t):

track_time_adjusted,world:198922,adjust:278,speed:1,delta:278,rounded:278,casted:-9223372036854775808,final:-9223372036854775808

То есть C-style каст 278. в std::int64_t в какой-то момент даёт int64_min. При этом в логе до этого идут десяток таких же, но нормальных:

track_time_adjusted,world:198706,adjust:69,speed:1,delta:69,rounded:69,casted:69,final:69

track_time_adjusted,world:198792,adjust:155,speed:1,delta:155,rounded:155,casted:155,final:155

и т.д., и таких валится очень много, на процессорах около 10 летней давности:

AuthenticAMD family 15 model 79 stepping 2, 1 CPU.
AuthenticAMD family 16 model 4 stepping 3, 4 CPUs.
AuthenticAMD family 16 model 6 stepping 3, 2 CPUs.
AuthenticAMD family 18 model 1 stepping 0, 3 CPUs.
GenuineIntel family 15 model 6 stepping 5, 2 CPUs.

Есть идея, в чём я не прав и что с этим можно сделать? 😕 Могла это VS2019 в какой-то момент обновиться и как-то иначе начать генерировать 32 битный код, и может можно какой-то свич повернуть, чтобы заработало нормально?..

6 ответов

17 просмотров

Единственная идея - 155 и 64 меньше, чем 255, а 278 больше, чем 255. Пробовали захардкодить adjust в 278 и options.speed в 1.0, и посмотреть под отладчиком, что получается?

у тебя доступ к этим железкам хоть какой-то есть?

John🤔-🤔 Автор вопроса
Alexander "SonnySlave" Zaitsev
у тебя доступ к этим железкам хоть какой-то есть?

Увы, даже живого юзера нет на связи с ними, только крашрепорты сыпятся, когда уже собрал версию. Но видимо надо как-то получать такого. Или запихать туда проверок с вываливанием с ошибкой и забить :(

Падение по ассерту в релиз? Ну ок, а какой ассерт, что он то говорит?

John🤔-🤔 Автор вопроса
Alex
Единственная идея - 155 и 64 меньше, чем 255, а 27...

На моей машине там всё ок с таким значением, а в логах бывают и другие: stp.worldTime:460724;stp.trackTime:0;track_time_adjusted,world:460737,adjust:13,speed:1,delta:13,rounded:13,casted:13,final:13 stp.worldTime:460724;stp.trackTime:0;reading_frames,time:13 stp.worldTime:460724;stp.trackTime:0;reading_enough_frames,time:13 ... stp.worldTime:460724;stp.trackTime:0;track_time_adjusted,world:460764,adjust:40,speed:1,delta:40,rounded:40,casted:-9223372036854775808,final:-9223372036854775808 То есть у кого-то для 13. сработало, а потом для 40. не сработало.

Возможно, стоит посмотреть на генерируемый код и погуглить соответствующие инструкции и их поведение на конкретных процессорах, может там есть особенности поведения (или баги)

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта