@IvanP я могу только предположить, что без -fstack-protector gcc старается выровнять кадр стека на 16 байт. Если вы хотите понять как gcc выделяет и пакует данные на стеке, сгенерируйте кучу функций с локальными данными разного состава/размера и помедитируйте на них. Возможно, добавление отладочной информации (-g) вам поможет.
> тебе наверное с большой неохотой давали доступ на запись
Имею доступ на запись, например, в binutils-gdb, получил стандартным способом, быстрее чем за 1 день.
> Сколько нибудь проектов запорол, вот что мне интересно
Пока ни одного. С гитом никто ведь не мешает потренироваться "на кошках", перед тем как что-то ломать.
> на собеседовании знания гита проверяют?
понятия не имею. Меня ни разу не спрашивали.
@krlljs я изучал git на практике, взаимодействуя с опенсорсными проектами и листая Pro GIT. В процессе подготовки/переработки патчей/тестирования чужих веток опыт набирается довольно быстро.
> делать уже нельзя - файл уже в удаленном репозитории @DancingOnWater догмы догмами, а головой иногда тоже можно подумать. Да и проблем-то: git fetch ; git rebase --onto origin/master master topic
"Нюансы для всех регионов мира" нужны только при переводе из UTC в локальное время, и они описываются с помощью tzdata. Для перевода unix time в UTC нужна совсем простая арифметика.
> Должен вполнить первую инструкцию из функции main, но печатает:
malloc.c: No such file or directory. До malloc еще не дошло, и я бы её "перепрыгнул".
Поставьте -O0 или -Og чтобы не инлайнилось всё что можно. Ну а то что заинлайнилось вполне можно просто прошагать по step/next/stepi/nexti.
С ходу приходят в голову три варианта: первый -- next, второй -- если зашли в функцию -- finish, третий -- ставить временную точку останова на инструкцию после call: tb *$pc + 5
> Как то вы не на тот вопрос отвечаете
> Как правильно?
Вы всё делаете правильно.
> использующую ввод/вывод
Нет никакой разницы в вашем примере, используется ввод-вывод или нет. Вы наверно имели в виду "использующий библиотечные функции".
> почему он не находит функцию
Он не функцию не может найти, а её исходный текст. Если вам нужен исходный текст printf установите исходники вашей libc.
Понимаете правильно. Но выглядит это... странно. Ну т.е. раз уж есть наследование, то чтобы воспользоваться его преимуществами, нужны виртуальные функции. А если использовать виртуальные функции, то и шаблоны как будто не нужны.