Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.06;
Скачать: CL | DM;

Вниз

Обработка CallStack и SEH-фреймов   Найти похожие ветки 

 
Пит   (2009-07-03 19:12) [0]

Может, у кого есть код решения следующих задач.

1) как можно более простая функция, которая в каком-либо удобоваримом формате возвращает стек вызовов как набор pointer"ов.

То есть, клиент присылает этот набор букв, являющихся списком Pointer"ов, а я с помощью MAP файла от данной версии EXE"шника преобразую это в именованную цепочку вызовов.

2) функция, которая будет возвращать список pointer"ов, последовательно указывающих на обработчики исключений, вытаскивая их из SEH-фреймов.

При этом нужен какой-то алгоритм генерирования некоего файла с соответствиями "указатель на обработчик исключения = имя модуля и строки" - это самое сложное, я так понимаю.

Ну и уточняющий вопросец - правильно ли я понимаю, что если между возникновением исключения и определенным обработчиком "стоит" TRYF, то останется информация только о последнем SEH-фрейме?
И аналогично для TRYE с ререйзом?


 
Пит   (2009-07-03 19:14) [1]

Ну и такой ламерский вопрос в тему. Я делаю так:

procedure My;
begin
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 edit1.Text := inttostr(cardinal(@My));
end;


Почему я вижу адрес: 44F04C

Когда в MAP файле такая запись:

0001:0004E04C       My


 
Игорь Шевченко ©   (2009-07-03 19:41) [2]

RTFM: Image base address, Code segment base


 
Kerk ©   (2009-07-03 21:01) [3]

Помню, в молодости я kernel32.dll в памяти искал, бегая по SEH. Во времена были!


 
atruhin ©   (2009-07-04 06:03) [4]

В jcl это реализованно, Alex Konshin с год назад, здесь выкладывал свою реализацию.
EurekaLog то же самое.


 
Piter ©   (2009-07-04 10:32) [5]

Удалено модератором
Примечание: п. 5


 
Kerk ©   (2009-07-04 11:43) [6]

Подозреваю, что в MAP-файле чего-то не то. Странно, что .text и .data одно смещение имеют. Посмотри лучше PE-заголовок каким-нибудь HIEW.



Страницы: 1 вся ветка

Текущий архив: 2009.09.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
2-1246712483
Incognito
2009-07-04 17:01
2009.09.06
Как сделать Combobox и DateTimePicker только readonly


15-1244637305
nach
2009-06-10 16:35
2009.09.06
C++ to Delphi


15-1247149761
Дмитрий С
2009-07-09 18:29
2009.09.06
Как по английски "я сам себе сама" ?


2-1247039063
MAX
2009-07-08 11:44
2009.09.06
из Word в БД


6-1205471134
snake-as
2008-03-14 08:05
2009.09.06
Отправка письма через прокси