Главная страница
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.48 MB
Время: 0.014 c
15-1246881220
ford
2009-07-06 15:53
2009.09.06
скопировать заблокированный файл


2-1246805599
LexXL
2009-07-05 18:53
2009.09.06
dll как клиент и сервер


2-1246361382
IrinaIrina
2009-06-30 15:29
2009.09.06
StringGrid записать в таблицу SQL


15-1246600795
Olleg
2009-07-03 09:59
2009.09.06
Создание картов маршрутов.


15-1246518647
stas
2009-07-02 11:10
2009.09.06
3D фото