Size: a a a

IT KPI C/С++ ХВ (хорошо, что не UB)

2020 January 12

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
Alex Master
в рекурсии выдает весь стак. в сегфолте не показывал строчку.
смысл в том, что проход левого итератора стопался на первом элементе, а второй проскакивал левый, они не попадали в условие свапа, а с ним же не меняли свои значения, из-за чего не всегда не попадали в первое условие, и всегда во второе
можно вывод асана?
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
не у компа сейчас
источник

G

GNU/Vsevolod.rs in IT KPI C/С++ ХВ (хорошо, что не UB)
указатели на функцию (С) ведут в text сегмент?
источник

G

GNU/Vsevolod.rs in IT KPI C/С++ ХВ (хорошо, что не UB)
или это .bss?
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
text
источник

G

GNU/Vsevolod.rs in IT KPI C/С++ ХВ (хорошо, что не UB)
а как я могу узнать размер блока с инструкциями тек. функции?
источник

G

GNU/Vsevolod.rs in IT KPI C/С++ ХВ (хорошо, что не UB)
там же вроде есть пара машинных слов, означающих ее завершение
источник

AB

Aleksey Belkevich in IT KPI C/С++ ХВ (хорошо, что не UB)
GNU/Vsevolod.rs
а как я могу узнать размер блока с инструкциями тек. функции?
Мне кажется что никак, много нюансов
источник

AB

Aleksey Belkevich in IT KPI C/С++ ХВ (хорошо, что не UB)
Даже в дизассемблированом виде трудновато сказать когда процедура навороченая
источник

AB

Aleksey Belkevich in IT KPI C/С++ ХВ (хорошо, что не UB)
Разве что вытаскивать отладочную информацию и ориентироваться по ней, если такая есть в сборке
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
Alex Master
в рекурсии выдает весь стак. в сегфолте не показывал строчку.
смысл в том, что проход левого итератора стопался на первом элементе, а второй проскакивал левый, они не попадали в условие свапа, а с ним же не меняли свои значения, из-за чего не всегда не попадали в первое условие, и всегда во второе
у меня появилось подозрение, что эта проблема вызвана тем, что компилятор сокращает деление и умножение на bytes и потому указатель съезжает по байтам массива, из-за чего в переменную pivot копируются невалидные данные. я постараюсь проверить это
источник

G

GNU/Vsevolod.rs in IT KPI C/С++ ХВ (хорошо, что не UB)
gcc/шланг умеют оптимизировать штуки типа 2^n => 2 << n?
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
GNU/Vsevolod.rs
gcc/шланг умеют оптимизировать штуки типа 2^n => 2 << n?
если юзаешь стандартную pow() то могут попробовать
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
но это от версии зависит
источник

G

GNU/Vsevolod.rs in IT KPI C/С++ ХВ (хорошо, что не UB)
Alex Master
но это от версии зависит
А если операторами?
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
GNU/Vsevolod.rs
А если операторами?
а есть оператор возведения в степень?
источник

G

GNU/Vsevolod.rs in IT KPI C/С++ ХВ (хорошо, что не UB)
Alex Master
а есть оператор возведения в степень?
Ну циклом + умножением
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
ух, ну тут Ofast пригодится для развертки циклов, и constexpr для просчета на этапе компиляции
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
точный ответ вряд ли кто-то даст
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
надо objdump делать
источник