Форум: "Прочее";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];
ВнизОбработка 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c