Пока орал на компилятор, внезапно понял, что не вызвал функцию / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор) :: котэ (прикольные картинки с кошками)
Подробнее
Пока орал на компилятор, внезапно понял, что не вызвал функцию
котэ,прикольные картинки с кошками,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Это ладно. А вот когда у тебя есть сравнительно простой код, который под отладчиком работает прекрасно, а в Release тестах падает - вот это грустно. Хотя должен работать и там, и там.
Я думаю, дядя про то, что код без оптимизаций (Debug для vs-ебов, -O0 для GCC-ебов) работает, а код с оптимизациями (Release, -O2/3/wtf) - нет.
Типичная жиза сишников/плюсовиков, связанная с Undefined Behavior, непониманием, что за хуйню ты написал, а иногда, очень редко, но таки с багами компилятора.
вот UB и баги компилятора и надо ловить и это актуально не только для си и плюсов а для многих других ЯП, а для этого надо иметь неебаться какой опыт не только в кодинге а написании тестов (а иначе разрабы только и будут что работать ради кривых тестов).
Если интересно что именно падало - я писал read only лист для использования в record классах в C#. И одно из требований было чтобы расчет хеш кода и сравнение значений работали не по дефолту (для ссылочных типов сравниваются ссылки и хеш тоже по факту считается от ссылки). Т.е. е двух листов с одинаковым содержимым хеш коды все равно разные. Вот этот расчет хеша я и переопределял. Собственно, там было немножко битовой арифметики и она на самом деле может работать чуть по разному под отладчиком и без когда происходит переполнение.
может и так ) а бывало, что за пониманием надо было идти в var/log/ и ковыряться там ещё ) те же messages, syslog и пр., а потом возвращаешься к трэйсу и - суууууу ка
Тут собравшиеся приготовились внимательно слушать, англичанин же высоко поднял сперва одну руку, потом другую, сложил кончики пальцев в виде куриной ж…ки, как выражаются в Шиноне, и четыре раза подряд провел ногтями то по одной руке, то по другой, затем разжал пальцы и ладонью одной руки оглушительно хлопнул по другой. Потом опять соединил руки, потом дважды хлопнул в ладоши и четыре раза сжал и разжал пальцы; затем опять сложил руки и, словно взывая к Богу, воздел их.
Вдруг Панург поднял правую руку, засунул большой ее палец в правую же ноздрю, а остальные четыре пальца сжал и вытянул на уровне кончика носа, левый глаз совершенно закрыл, а правый прищурил, низко опустив и бровь и веко; затем высоко поднял левую руку, плотно сжал и вытянул четыре пальца, а большой палец поднял, после чего левая его рука приняла такое же точно положение, как и правая, отделяло же их одну от другой расстояние в полтора локтя. Потом он опустил обе руки, а затем поднял до уровня плеч и как бы нацелился в нос англичанину.
– Но если Меркурий... – начал было англичанин.
Однако ж Панург перебил его:
– Маска, вы заговорили!
Тогда англичанин сделал вот какой знак: он высоко поднял раскрытую левую руку, сжал в кулак четыре пальца, а большой палец вытянул и приставил к кончику носа. Потом быстрым движением поднял раскрытую правую руку и, не сжимая, опустил, приставил большой палец к мизинцу левой, а другими четырьмя пальцами левой руки начал медленно двигать, потом наоборот: правой сделал то, что раньше проделывал левой, а левой – то, что раньше проделывал правой.
Панург не растерялся: левой рукой он приподнял свой преогромный гульфик, а правой вынул оттуда кусок бычьего ребра и две одинаковой формы палочки, одну – черного дерева, другую – красного бразильского дерева, симметрично расположил их между пальцами и, ударяя одну о другую, стал издавать звук, напоминающий погремушки бретонских прокаженных, более, однако же, сильный и приятный для слуха, и при этом он еще, не спуская глаз с англичанина, весело прищелкивал языком.
По мнению богословов, лекарей и хирургов, этот знак указывал, что англичанин болен проказой.
По мнению же советников, законоведов и знатоков канонического права, этим он хотел сказать, что и прокаженный может быть по-своему счастлив, как то некогда открыл нам Господь.
Англичанин этим не смутился: он поднял обе руки, три главных пальца сжал, затем пропустил большие пальцы между указательными и средними, мизинцы же вытянул во всю длину и поднес к лицу Панурга, а потом соединил руки так, что большой палец правой касался большого пальца левой, а мизинец левой – мизинца правой.
Панург, не долго думая, поднял руки и сделал вот какой знак: он приставил ноготь указательного пальца левой руки к ногтю большого пальца той же руки, так что внутри образовалось как бы колечко[416], а все пальцы правой, за исключением указательного, сжал в кулак, указательный же он то совал в это колечко, то вынимал. Потом вытянул указательный и средний пальцы левой руки, раздвинул их сколько мог и протянул Таумасту. Затем, вытянув левую руку наподобие птичьего крыла или же рыбьего плавника и приставив большой палец этой руки к углу левого глаза, стал тихонечко двигать левой рукой то туда, то сюда; потом то же самое проделал он правой рукой, приставив палец к углу правого глаза.
Таумаст побледнел, задрожал и сделал вот какой знак: средним пальцем правой руки ударил по тому месту, откуда растет большой палец, а затем указательный палец правой руки всунул в кольцо, которое он по примеру Панурга образовал на левой руке, но только в верхнюю часть кольца, а не в нижнюю, как это делал Панург.
Тут Панург хлопнул в ладоши, свистнул в кулак, потом опять всунул указательный палец правой руки в кольцо левой и быстро-быстро начал шевелить им. После этого он выставил вперед подбородок и пристально посмотрел на Таумаста.
Зрители до сих пор ничего не понимали в этих знаках, но тут они отлично поняли, что Панург обратился к Таумасту с безмолвным вопросом:
– Что вы на это скажете?
Таумаст же сильно вспотел и имел теперь вид человека, погрузившегося в созерцание. Потом его вдруг осенило, и он приложил ногти левой руки к ногтям правой, затем расставил пальцы полукругом, а затем постарался как можно выше поднять обе руки.
В ответ на это Панург подпер челюсть большим пальцем правой руки, а мизинец той же руки вставил в кольцо левой и при этом весьма мелодично начал стучать нижними зубами о верхние.
Таумаст от великого напряжения вскочил, но, вскочив, трахнул так, что стены задрожали, обмочился и испортил воздух, как все черти, вместе взятые. Собравшиеся стали зажимать носы, оттого что он еще и обделался от волнения. Затем он поднял правую руку и сложил вместе кончики пальцев, а левую приложил к груди.
В ответ на это Панург потянул за свой длинный гульфик с кисточкой, растянул его на полтора локтя и левой рукой подержал некоторое время на весу, правою же рукою достал апельсин и, семь раз подбросив его, на восьмом разе зажал в кулак правой руки, а самую руку поднял, и некоторое время она у него оставалась неподвижной; затем начал трясти прекрасным своим гульфиком, привлекая к нему внимание Таумаста.
Тогда Таумаст надул щеки, точно волынщик, и столь шумно принялся выпускать воздух, словно он надувал свиной пузырь.
В ответ на это Панург вставил один из пальцев левой руки себе в зад, а ртом втянул воздух с таким присвистом, как будто бы высасывал устрицу из раковины или же ел суп; затем чуть приоткрыл рот и ладонью правой руки хлопнул себя по губам, глубоко и шумно вздохнув, как если бы этот вздох с поверхности диафрагмы прошел через его трахею, и повторил он это шестнадцать раз подряд.
А Таумаст между тем дышал, как гусь.
Тогда Панург засунул указательный палец правой руки себе в рот и, напрягши мускулы рта, крепко его зажал, а затем вытащил с громким звуком, напоминающим выстрел из игрушечной пушечки, из которой мальчишки стреляют редиской, и проделал он это девять раз подряд.
Вдруг Таумаст воскликнул:
– А-а, милостивые государи, я понял, в чем тут секрет! Это самоуглубление!
С последним словом англичанин выхватил свой кинжал и некоторое время держал его острием вниз.
В ответ на это Панург уцепился за край своего длинного гульфика и изо всех сил стал трясти им на уровне бедер, затем, сцепив пальцы обеих рук наподобие гребня, положил руки на голову, язык же при этом высунул сколько мог, а глаза закатил, точно околевающая коза.
– А, понимаю! – сказал Таумаст. – Ну, а это?
И он приставил рукоять кинжала к груди, а к острию поднес ладонь, пальцы же слегка согнул.
В ответ на это Панург склонил голову влево, приставил средний палец к правому уху, а большой палец поднял вверх. Затем скрестил руки на груди, пять раз кашлянул, а на пятом разе топнул ногой. Затем поднял левую руку и, сжав пальцы в кулак, приставил костяшку большого пальца ко лбу, а правой рукой шесть раз ударил себя в грудь.
Таумаст, по-видимому не удовлетворенный, приставил большой палец левой руки к кончику носа, а другие пальцы той же руки сжал в кулак.
Тогда Панург приставил два главных пальца к углам рта, растянул его сколько мог и оскалил зубы, а затем большими пальцами сильно надавил на веки и скорчил, как показалось собравшимся, довольно неприятную рожу.
Я видел баг в компиляторе. GCC, inline функция + ассемблерная вставка = иногда вероятностью компилятор сгенерирует херню. Я очень очень очень долго пытался искать у себя UB, чтобы понять, что за хрень творит компилятор.
РУССКОМ ЯЗЫКЕ
РУССКОМ ЯЗЫКЕ
ПОЛНОСТЬЮ НА
Симулят«
>роны древних
ПОЛНАЯ
русская и
АНГЛИЙСКАЯ
ВЕРСИИ
ПОЛНАЯ РУССКАЯ И АНГЛИЙСКАЯ ВЕРСИИ
ПОЛНАЯ РУССКАЯ И АНГЛИЙСКАЯ ВЕРСИИ
ПОЛНОСТЬЮ НА
КЕИН ЛИНЧУЕТ
МЕРТВЫХ
МУЖИКОВ
ФАРГУС
ПОЛНАЯ
русская и
АНГЛИЙСКАЯ
ВЕРСИИ
Типичная жиза сишников/плюсовиков, связанная с Undefined Behavior, непониманием, что за хуйню ты написал, а иногда, очень редко, но таки с багами компилятора.
Если интересно что именно падало - я писал read only лист для использования в record классах в C#. И одно из требований было чтобы расчет хеш кода и сравнение значений работали не по дефолту (для ссылочных типов сравниваются ссылки и хеш тоже по факту считается от ссылки). Т.е. е двух листов с одинаковым содержимым хеш коды все равно разные. Вот этот расчет хеша я и переопределял. Собственно, там было немножко битовой арифметики и она на самом деле может работать чуть по разному под отладчиком и без когда происходит переполнение.
Вдруг Панург поднял правую руку, засунул большой ее палец в правую же ноздрю, а остальные четыре пальца сжал и вытянул на уровне кончика носа, левый глаз совершенно закрыл, а правый прищурил, низко опустив и бровь и веко; затем высоко поднял левую руку, плотно сжал и вытянул четыре пальца, а большой палец поднял, после чего левая его рука приняла такое же точно положение, как и правая, отделяло же их одну от другой расстояние в полтора локтя. Потом он опустил обе руки, а затем поднял до уровня плеч и как бы нацелился в нос англичанину.
– Но если Меркурий... – начал было англичанин.
Однако ж Панург перебил его:
– Маска, вы заговорили!
Тогда англичанин сделал вот какой знак: он высоко поднял раскрытую левую руку, сжал в кулак четыре пальца, а большой палец вытянул и приставил к кончику носа. Потом быстрым движением поднял раскрытую правую руку и, не сжимая, опустил, приставил большой палец к мизинцу левой, а другими четырьмя пальцами левой руки начал медленно двигать, потом наоборот: правой сделал то, что раньше проделывал левой, а левой – то, что раньше проделывал правой.
Панург не растерялся: левой рукой он приподнял свой преогромный гульфик, а правой вынул оттуда кусок бычьего ребра и две одинаковой формы палочки, одну – черного дерева, другую – красного бразильского дерева, симметрично расположил их между пальцами и, ударяя одну о другую, стал издавать звук, напоминающий погремушки бретонских прокаженных, более, однако же, сильный и приятный для слуха, и при этом он еще, не спуская глаз с англичанина, весело прищелкивал языком.
По мнению богословов, лекарей и хирургов, этот знак указывал, что англичанин болен проказой.
По мнению же советников, законоведов и знатоков канонического права, этим он хотел сказать, что и прокаженный может быть по-своему счастлив, как то некогда открыл нам Господь.
Англичанин этим не смутился: он поднял обе руки, три главных пальца сжал, затем пропустил большие пальцы между указательными и средними, мизинцы же вытянул во всю длину и поднес к лицу Панурга, а потом соединил руки так, что большой палец правой касался большого пальца левой, а мизинец левой – мизинца правой.
Панург, не долго думая, поднял руки и сделал вот какой знак: он приставил ноготь указательного пальца левой руки к ногтю большого пальца той же руки, так что внутри образовалось как бы колечко[416], а все пальцы правой, за исключением указательного, сжал в кулак, указательный же он то совал в это колечко, то вынимал. Потом вытянул указательный и средний пальцы левой руки, раздвинул их сколько мог и протянул Таумасту. Затем, вытянув левую руку наподобие птичьего крыла или же рыбьего плавника и приставив большой палец этой руки к углу левого глаза, стал тихонечко двигать левой рукой то туда, то сюда; потом то же самое проделал он правой рукой, приставив палец к углу правого глаза.
Таумаст побледнел, задрожал и сделал вот какой знак: средним пальцем правой руки ударил по тому месту, откуда растет большой палец, а затем указательный палец правой руки всунул в кольцо, которое он по примеру Панурга образовал на левой руке, но только в верхнюю часть кольца, а не в нижнюю, как это делал Панург.
Тут Панург хлопнул в ладоши, свистнул в кулак, потом опять всунул указательный палец правой руки в кольцо левой и быстро-быстро начал шевелить им. После этого он выставил вперед подбородок и пристально посмотрел на Таумаста.
Зрители до сих пор ничего не понимали в этих знаках, но тут они отлично поняли, что Панург обратился к Таумасту с безмолвным вопросом:
– Что вы на это скажете?
Таумаст же сильно вспотел и имел теперь вид человека, погрузившегося в созерцание. Потом его вдруг осенило, и он приложил ногти левой руки к ногтям правой, затем расставил пальцы полукругом, а затем постарался как можно выше поднять обе руки.
В ответ на это Панург подпер челюсть большим пальцем правой руки, а мизинец той же руки вставил в кольцо левой и при этом весьма мелодично начал стучать нижними зубами о верхние.
Таумаст от великого напряжения вскочил, но, вскочив, трахнул так, что стены задрожали, обмочился и испортил воздух, как все черти, вместе взятые. Собравшиеся стали зажимать носы, оттого что он еще и обделался от волнения. Затем он поднял правую руку и сложил вместе кончики пальцев, а левую приложил к груди.
В ответ на это Панург потянул за свой длинный гульфик с кисточкой, растянул его на полтора локтя и левой рукой подержал некоторое время на весу, правою же рукою достал апельсин и, семь раз подбросив его, на восьмом разе зажал в кулак правой руки, а самую руку поднял, и некоторое время она у него оставалась неподвижной; затем начал трясти прекрасным своим гульфиком, привлекая к нему внимание Таумаста.
Тогда Таумаст надул щеки, точно волынщик, и столь шумно принялся выпускать воздух, словно он надувал свиной пузырь.
В ответ на это Панург вставил один из пальцев левой руки себе в зад, а ртом втянул воздух с таким присвистом, как будто бы высасывал устрицу из раковины или же ел суп; затем чуть приоткрыл рот и ладонью правой руки хлопнул себя по губам, глубоко и шумно вздохнув, как если бы этот вздох с поверхности диафрагмы прошел через его трахею, и повторил он это шестнадцать раз подряд.
А Таумаст между тем дышал, как гусь.
Тогда Панург засунул указательный палец правой руки себе в рот и, напрягши мускулы рта, крепко его зажал, а затем вытащил с громким звуком, напоминающим выстрел из игрушечной пушечки, из которой мальчишки стреляют редиской, и проделал он это девять раз подряд.
Вдруг Таумаст воскликнул:
– А-а, милостивые государи, я понял, в чем тут секрет! Это самоуглубление!
С последним словом англичанин выхватил свой кинжал и некоторое время держал его острием вниз.
В ответ на это Панург уцепился за край своего длинного гульфика и изо всех сил стал трясти им на уровне бедер, затем, сцепив пальцы обеих рук наподобие гребня, положил руки на голову, язык же при этом высунул сколько мог, а глаза закатил, точно околевающая коза.
– А, понимаю! – сказал Таумаст. – Ну, а это?
И он приставил рукоять кинжала к груди, а к острию поднес ладонь, пальцы же слегка согнул.
В ответ на это Панург склонил голову влево, приставил средний палец к правому уху, а большой палец поднял вверх. Затем скрестил руки на груди, пять раз кашлянул, а на пятом разе топнул ногой. Затем поднял левую руку и, сжав пальцы в кулак, приставил костяшку большого пальца ко лбу, а правой рукой шесть раз ударил себя в грудь.
Таумаст, по-видимому не удовлетворенный, приставил большой палец левой руки к кончику носа, а другие пальцы той же руки сжал в кулак.
Тогда Панург приставил два главных пальца к углам рта, растянул его сколько мог и оскалил зубы, а затем большими пальцами сильно надавил на веки и скорчил, как показалось собравшимся, довольно неприятную рожу.