Есть класс Debug, который, в случае присутствия экземпляра данного класса в статическом поле, при вызове метода Debug::Store сохраняет информацию о вызове метода/функции, из которой он сам был вызван (в случае, если он вызван за пределами метода/функции, он бросает исключение). В принцыпе, нам известно практически все (выполняем трасировку): имя файла самой функции, класс (если это метод), ее имя, а так же файл, имя функции и номер строки, из которой она была вызвана. Единственное, что хотелось бы еще сохранить - номер и конец строки, с которых начинается и заканчивается определение, как вызывающей, так и наблюдаемой функции, чтобы вывести информацию непосредственно об этих строках, а так же, при желании, содержимое этих функций. Конечно можно регулярным выражение прогуляться по файлу (благо имя нам известно), но этот способ не выглядит слишком элегантным. Может есть какой-то более правильный, а главное - простой метод? Заранее спасибо.
|