Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
12 / 12 / 2
Регистрация: 05.06.2016
Сообщений: 248
1

Просмотр генерируемого кода специальных членов функций

08.06.2017, 12:53. Показов 814. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можно ли как-нибудь посмотреть код который генерирует компилятор для специальных членов функций для отдельных классов?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2017, 12:53
Ответы с готовыми решениями:

TinyMCE. Как изменить шаблон генерируемого html кода?
При вводе текста в редакторе TinyMCE формируется полный код страницы(начиная с <!DOCTYPE html> и...

Найти сумму не используя специальных функций
Есть задача: 1^1 + 2^2 + 3^3 + ... + 10^10=??? Надо найти сумму не используя специальных...

Генератор специальных функций (синуса, пилы на базе ШИМ)
Мне нужно создать генератор специальных функций: пилообразный, синусоидальный сигналы (на основе...

Перевести число в строку, не используя никаких специальных функций
Дайте пожалуйста несколько советов , как можно перевести число в строку при этом нельзя...

5
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
08.06.2017, 13:00 2
Цитата Сообщение от nammidd Посмотреть сообщение
код который генерирует компилятор
компилятор не генерирует исходный код таких функций, он генерирует всё уже в машинном виде. Так что если нужен машинный код, дизассемблируешь и смотришь место, где создаются экземпляры нужного класса.
0
12 / 12 / 2
Регистрация: 05.06.2016
Сообщений: 248
08.06.2017, 13:04  [ТС] 3
TRam_, я понимаю, но я спросил "Можно ли как-нибудь", может быть кто-нибудь сделал утилиту или способ для визуализации кода специальных членов функций.
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
08.06.2017, 13:15 4
Цитата Сообщение от nammidd Посмотреть сообщение
Можно ли как-нибудь посмотреть код который генерирует компилятор для специальных членов функций для отдельных классов?
Можно.
Например, MS C/C++ имеет такую опцию для сохранения ассемблерного листинга:

/FA, /Fa (Listing File)
https://msdn.microsoft.com/en-... y26c6.aspx

Нечто подобное есть у всех (или почти всех) компиляторов.
0
12 / 12 / 2
Регистрация: 05.06.2016
Сообщений: 248
08.06.2017, 13:23  [ТС] 5
Убежденный, С ассемблером всё понятно, я его не знаю, под кодом я имею ввиду C++ код.
0
18899 / 9857 / 2410
Регистрация: 30.01.2014
Сообщений: 17,300
08.06.2017, 13:35 6
Цитата Сообщение от nammidd Посмотреть сообщение
Можно ли как-нибудь посмотреть код который генерирует компилятор для специальных членов функций для отдельных классов?
Имеются в виду конструкторы, деструкторы и т.п.?
Посмотреть код можно, есть несколько способов:
* нужно запустить компилятор в режиме генерации ассемблерного листинга. Для разных компиляторов это делается по-разному. Например, в gcc, mingw для этого служит ключ -S. Далее находим интересующее нас место и смотрим.

* можно воспользоваться отладчиком и дойти в отладке до нужного места в программе, а потом вывести ассемблерный код. В отладчике GDB это можно сделать, например, получив нужное смещение в файле с помощью команды info line, а затем выведя ассемблерный листинг с помощью команды disassemble <смещение>. Или можно просто вывести ассемблер нужной функции с помощью disassemble 'файл'::имя_функции. Например, для operator= в классе MyClass будет disassemble 'твой файл.cpp'::MyClass::operator=.

Однако это все условно. В том смысле, что во-первых эти функции вообще не существуют в программе, если не используются. Во-вторых у них может не быть адреса - т.к. все они были успешно встроены по месту вызова. А после того, как за код взялся оптимизатор, границы могут быть еще более размазаны.

Поэтому задам классический вопрос: вы таки с какой целью интересуетесь?

Добавлено через 3 минуты
Цитата Сообщение от nammidd Посмотреть сообщение
под кодом я имею ввиду C++ код.
А, ну тут все просто. Никакого С++ кода у этих функций нет.
5
08.06.2017, 13:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2017, 13:35
Помогаю со студенческими работами здесь

Просмотр функций dll
как посмотреть весь список функций и их параметров в dll??? Добавлено через 32 минуты при...

Убрать из $watch() просмотр функций
Добрый день. У меня есть массив объектов. Некоторые из свойств этого объекта - это функции,...

Просмотр алгоритмов функций php в Си
Немного освоил синтаксис Си/С++ и поэтому затаился вопрос. В php есть удобные функции которые...

Просмотр кода
Доброго всем времени суток, у меня следующий вопрос, можно ли как то посмотреть код или вывести...

Просмотр кода с сайта
я могу просмотреть код py-файла, который что-то делает на сервере сайта?

Просмотр исходного кода
День добрый! Подскажите, каким образом можно подсмотреть исходный код библиотек майкрософт в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru