В основном я хочу сделать сопоставление звонящего/вызываемого, добавив проверки времени выполнения , который проверяет допустимые диапазоны перед каждым возвратом C/C++ .Сопоставьте все возвращаемые значения виртуальных функций с соответствующими адресами возврата
У меня есть прямое отображение всех отправлений виртуальных объектов на допустимые записи виртуальной таблицы для данной иерархии классов. Данные собираются во время LLVM LTO. Теперь я хочу сделать то же самое для , все возвращается к виртуальной функции. Поскольку прямое отображение сообщает мне, какие функции должны быть доступны, мне нужно определить в порядке , чтобы точно отобразить назад следующую информацию.
откуда в Clang/LLVM, чтобы получить обратные адреса для каждого возвращения, содержащегося в виртуальной функции. Возможно ли получить эту информацию во время компиляции ?
Как определить, в какой функции содержится определенный доход. Далее, как определить, к какому классу принадлежит эта функция?
Спасибо заранее, Пол
1. Конечно, нет: адрес возврата помещается в стек во время выполнения; недоступны во время компиляции. 2. Я не могу разгадать этот вопрос. – EJP
Пожалуйста, отредактируйте ваш вопрос, чтобы показать [что вы пробовали до сих пор] (http://whathaveyoutried.com). Вы должны включить [mcve] кода, с которым у вас возникают проблемы, тогда мы можем попытаться помочь с конкретной проблемой. Вы также должны прочитать [ask]. –