consoledevФорум

pspDebugInstallErrorHandler

#0
15:20, 19 янв 2007

вопрос такой
вот есть такой фокус подсмотренный в ps2dev.org

// Sort of hack to install exception handler under USER THREAD
__attribute__((constructor)) void handlerInit()
{
  pspKernelSetKernelPC();
  pspDebugInstallErrorHandler(MyExceptionHandler);
}

void MyExceptionHandler(PspDebugRegBlock *regs)
{
  pspDebugScreenInit();

  pspDebugScreenSetBackColor(0x00FF0000);
  pspDebugScreenSetTextColor(0xFFFFFFFF);
  pspDebugScreenClear();

  pspDebugScreenPrintf("I regret to inform you your psp has just crashed\n");
  pspDebugScreenPrintf("Please contact Sony technical support for further information\n\n");
  pspDebugScreenPrintf("Exception Details:\n");
  pspDebugDumpException(regs);
  DumpRegsToLog(regs);
  //DumpDebugProfilerPrint();
  sceKernelExitGame();
}

можно ли каким-то способом сразу вывести еще и строку и имя файла, где произошел exeption ?

#1
15:39, 19 янв 2007

Чуда не бывает :-)

Но... у нас есть адрес возникновения исключения, используя этот адрес можно по map-файлу (если нет отладочной информации), либо пропарсив elf-файл с отладочной информацией найти имя файла и строку :-)

#2
16:20, 19 янв 2007

вобщемто так сейчас и происходит...но это ....как бы помягче достает - да ))
типа так
psp-objdump -S $(TARGET).elf >> $(TARGET).s
потом там и ковыряю по адресу - правда не сказал бы что вот супер удобно ))

#3
19:52, 25 янв 2007

bada
http://www.dtf.ru/articles/read.php?id=37058

#4
14:01, 29 янв 2007

http://const.kiev.ua/photo/dump.jpg

Одно из достижений нашей секретной лаборатории.

Особенно внимательно смотреть нижнюю часть экрана :)

Имя функции, файла и прочая прочая - это да, надо мап-файл парсить и разбираться. Будет время - тож сделаем :)

#5
14:32, 29 янв 2007

const
ну если у вас уже есть колл стек - можно же и параметры запоминать - а то просто вызовы ф-ций не особо помогут

#6
14:34, 29 янв 2007

bada
Хех, параметры запоминать - это совсем не легко, а коллстек нужен больше не для того, чтобы контекст восстановить, а чтобы понять - "как мы сюда попали" :)

consoledevФорум

Тема в архиве.