|
Автор |
Сообщение |

chaos
Глав. Хелпер
Популярность: +132 (140)
Имя: Дмитрий
Возраст: 44
С нами с: 15.12.2003
Сообщений: 55
Откуда: Kiev
|
1/15 Добавлено:Пт Дек 16, 2005 17:20 Заголовок сообщения: ArmDebugger 0.7.9 - отладчик для телефонов 65..75-й серии |
|
|
ArmDebugger - отладчик для телефонов 65..75-й серии
http://chaos.allsiemens.com/download/ArmDebugger-079.rar
Вот основные возможности:
- автоматическая генерация CGSN-патча по слитому фулфлешу
- просмотр содержимого памяти телефона в HEX-дампе без ограничений доступа (в т.ч. области портов ввода/вывода)
- возможность редактирования памяти, в том числе флеш-области (используется замещение flash-страниц, содержимое flash не изменяется)
- поиск байтов/строк в памяти
- поиск ссылок любого типа на выбранный адрес памяти
- непрерывный мониторинг участка памяти
- ARM/Thumb дизассемблер с inline-ассемблером
- Пошаговая трассировка программы или процесса
- Установка точек останова (breakpoints) на любой адрес флеш-памяти
- Установка точек мониторинга (snappoints) - возможность посмотреть содержимое регистров/памяти в любой точке прошивки
- Установка watchpoint на запись в указанный диапазон RAM
- возможность импорта/экспорта базы имён из/в дизассемблер IDA Pro
- запись всех сделанных патчей, возможность просмотра списка патчей, оперативной их отмены, экспорт в vkp-файл
- интеграция с Keil ARM tools - компилирование и запуск тестовых программ (поддерживаются Assembler и С), возможность автоматической загрузки скомпилированного кода по указаному адресу
- компилирование и тестирование бутлоадеров
- вывод состояния отдельных адресов памяти в виде integer/hex/ASCII/Unicode, а также элементов вложенных структур (до 5 уровней)
- просмотр карты адресного пространства
- просмотр/изменение регистров сопроцессора CP15
- анализ RAM, поиск неиспользуемых страниц для функции замещения flash
- запоминание текущего состояния (патчей, открытых файлов редактора, текущих адресов...), автоматическая загрузка всех сделанных изменений при перезагрузке телефона
- отлавливание аварийных завершений (SExit), с выводом полной информации о них
- просмотр ресурсов Nucleus RTOS (процессы, обработчики прерываний, распределение памяти)
- просмотр детальной карты флеш-памяти
- дополнительные функции: дамп участка памяти в файл, вызов функций flash с параметрами, hex/bin/dec калькулятор
Настройка:
1. Пропишите в настройках путь к Keil ARM
2. Сгенерируйте CGSN-патч (меню Tools->Generate CGSN patch), примените его
3. Добавьте секцию с параметрами телефона в devices.ini (т.к. вся 65-я серия имеет одинаковую организацию памяти, просто скопируйте любой блок, измените название секции на [Siemens:ваша_модель:ваша_прошивка] и удалите все параметры, начинающиеся с Pool). (Если секция для вашей прошивки уже есть, пункты 3 и 4 пропустите).
Теперь дебагер должен увидеть телефон.
4. С помощью Tools->RAM access analyzer определите свободные участки памяти. Перегрузите телефон, нажмите Initialize, затем нужно хорошо помучить телефон, стараясь использовать все возможные функции. После этого нажмите Analyze, программа выдаст список неиспользуемых областей памяти. Выберите 2-3 самые большие и занесите их в devices.ini как Pool<N>Address и Pool<N>pages.
Последний раз редактировалось: chaos (Чт Дек 28, 2006 15:29), всего редактировалось 4 раз(а) |
|
^ Вверх ^ |
|
 |
swoofer
Гость
|
2/15 Добавлено:Пт Янв 06, 2006 14:13 Заголовок сообщения: |
|
|
А ты не мог бы сдлать прогу на русском
А то я не силён в англиском
|
|
^ Вверх ^ |
|
 |
block
Зелёный
Популярность: +1 (1)
Возраст: 41
С нами с: 24.01.2006
Сообщений: 4
Модель телефона: С65
|
3/15 Добавлено:Ср Янв 25, 2006 17:40 Заголовок сообщения: |
|
|
Прекрасная вещь. Особенно полезны брейкпоинты на память.
Но уж если обсуждаем:
1) Отсутствие условных брейкпоинтов (условия с регистрами приходиться набивать в виде патча... по-сути сплайсинг чистой воды - жуть как неудобно, вспоминаються времена DOS-a)
2) Некоректная работа с брейками на запись памяти. Слишком часто телефон отключаеться.
Дебагер уникальный. Жаль только что крайне не стабильный. Уж слишком часто при иследовании интимных мест прошивки с помощью "set watchpoint on write" он вываливает трубу.
|
|
^ Вверх ^ |
|
 |
mana9er
Реаниматор
Популярность: +63 (77)
Возраст: 34
С нами с: 26.08.2005
Сообщений: 416
Откуда: msk
Модель телефона: cx75
|
4/15 Добавлено:Вт Янв 31, 2006 15:10 Заголовок сообщения: |
|
|
Уважаемый chaos, у меня возник вопрос.
При компиляции дебаггер все время выдает "Assembler exited with error code 1". Путь к кейлу прописан (x:\Keil\ARM). Может что-нибудь нужно в батниках amake и cmake поправить?
Добавлено
Уже не актуально. Дебаггер ставить в папку, не содержащую пробелов в названии.
_________________ eric a3618->lg 500->me 45->se t610->cx75+sl45(i) :) |
|
^ Вверх ^ |
|
 |

chaos
Глав. Хелпер
Популярность: +132 (140)
Имя: Дмитрий
Возраст: 44
С нами с: 15.12.2003
Сообщений: 55
Откуда: Kiev
|
|
^ Вверх ^ |
|
 |

chaos
Глав. Хелпер
Популярность: +132 (140)
Имя: Дмитрий
Возраст: 44
С нами с: 15.12.2003
Сообщений: 55
Откуда: Kiev
|
|
^ Вверх ^ |
|
 |

chaos
Глав. Хелпер
Популярность: +132 (140)
Имя: Дмитрий
Возраст: 44
С нами с: 15.12.2003
Сообщений: 55
Откуда: Kiev
|
7/15 Добавлено:Вт Апр 04, 2006 15:27 Заголовок сообщения: |
|
|
Версия 0.7.4
- улучшен поиск, возможность поиска unicode-строки, поиск с отображением всех результатов в таблице
- условные снаппоинты
- можно ставить снаппоинт в RAM
- пофиксена работа через DCA-540 (нужно перегенерить патч)
http://chaos.allsiemens.com/download/ArmDebugger-074.rar
|
|
^ Вверх ^ |
|
 |
block
Зелёный
Популярность: +1 (1)
Возраст: 41
С нами с: 24.01.2006
Сообщений: 4
Модель телефона: С65
|
8/15 Добавлено:Вт Апр 04, 2006 16:33 Заголовок сообщения: |
|
|
Косметический баг:
Например на инструкцию “LDR R0, =XXXX” поставить breakpoint нельзя. Но MessageBox говорит «Cannot set snappoint on this instruction». Вообщето - брейкпоинт, но это мелочь.
Просьба в новой версии добавить:
1) Возможность посмотреть значение двойного указателя: **XXXX.
2) Возможность задавать условные брейкпоинты, как теперь это реализовано в установке снаппоинтов. (Апетит ростёт )
Огромное спасибо за условные снаппоинты.
|
|
^ Вверх ^ |
|
 |

chaos
Глав. Хелпер
Популярность: +132 (140)
Имя: Дмитрий
Возраст: 44
С нами с: 15.12.2003
Сообщений: 55
Откуда: Kiev
|
9/15 Добавлено:Вт Апр 04, 2006 17:07 Заголовок сообщения: |
|
|
block писал(а): |
1) Возможность посмотреть значение двойного указателя: **XXXX.
|
не совсем понял.. посмотреть где?
Цитата: |
2) Возможность задавать условные брейкпоинты, как теперь это реализовано в установке снаппоинтов. (Апетит ростёт )
|
а это можно и сейчас, если в снаппоинте вместо текста ввести "~".
|
|
^ Вверх ^ |
|
 |
block
Зелёный
Популярность: +1 (1)
Возраст: 41
С нами с: 24.01.2006
Сообщений: 4
Модель телефона: С65
|
10/15 Добавлено:Вт Апр 04, 2006 17:30 Заголовок сообщения: |
|
|
Цитата: | а это можно и сейчас, если в снаппоинте вместо текста ввести "~". |
Действительно!!! . Спасибо за подсказку.
Цитата: | не совсем понял.. посмотреть где? |
Допустим регистр R0 принимает значение двойного указателя на строку (в терминологии Сишки char **ppstr). При срабатывании снаппоинта хотелось бы её увидеть.
|
|
^ Вверх ^ |
|
 |
inquis
Модератор
Имя: Дмитрий
Возраст: 28
С нами с: 21.02.2006
Сообщений: 2452
Откуда: UA
Модель телефона: Nokia E51
|
11/15 Добавлено:Вт Июн 13, 2006 14:30 Заголовок сообщения: |
|
|
Что такое Keil ARM? Где его взять или как его сделать? Как правильно генерировать CGSN patch? Какой фулл нужно для этого брать: любой моей прошивки или тока чистый?
У меня такая проблема:
Сгенерировал CGSN patch с фулла, применил его, жму в ArmDebugger "соединить", а в ответ тел вырубается и Debugger выдаёт ошибки: "CGSN patch not installed or wrong patch version..." и "No device information in database..."
Что нужно добавить в этот devices.ini?
У меня прописано так:
Код: | [SIEMENS:C75:22]
Name = Siemens C75 fw22
BootROMaddress = 0x400000;
BootROMsize = 0x100000;
FlashAddress = 0xa0000000;
FlashSize = 0x02000000;
IntRAM1address = 0x0;
IntRAM1size = 0x4000;
IntRAM2address = 0x80000;
IntRAM2size = 0x18000;
ExtRAMaddress = 0xa8000000;
ExtRAMsize = 0x00800000;
IOaddress = 0xf0000000;
IOsize = 0x10000000;
UseRAM = 0x8e000; |
_________________ Не читать! :: Не нажимать!
|
|
^ Вверх ^ |
|
 |
alariym
Новичок
Популярность: +4 (4)
Возраст: 59
С нами с: 19.05.2006
Сообщений: 51
Откуда: г.Маркс
Модель телефона: S75
|
12/15 Добавлено:Пн Июн 19, 2006 20:32 Заголовок сообщения: |
|
|
S75 FW40 ffs31 map 31
device.ini
[SIEMENS:S75:40]
Name = Siemens S75 fw40
BootROMaddress = 0x400000;
BootROMsize = 0x100000;
FlashAddress = 0xa0000000;
FlashSize = 0x04000000;
IntRAM1address = 0x0;
IntRAM1size = 0x4000;
IntRAM2address = 0x80000;
IntRAM2size = 0x18000;
ExtRAMaddress = 0xa8000000;
ExtRAMsize = 0x01000000;
IOaddress = 0xf0000000;
IOsize = 0x10000000;
UseRAM = 0x89000;
Телефон подключается, но при попытке выполнить Tools->RAM access analyzer пишет "No free pages in relocation pool"
Analyze в дальнейшем ничего не выдает
В чем может быть дело?
_________________ A55->M55->S75 |
|
^ Вверх ^ |
|
 |

chaos
Глав. Хелпер
Популярность: +132 (140)
Имя: Дмитрий
Возраст: 44
С нами с: 15.12.2003
Сообщений: 55
Откуда: Kiev
|
13/15 Добавлено:Пн Июн 26, 2006 15:51 Заголовок сообщения: |
|
|
ArmDebugger 0.7.5
http://chaos.allsiemens.com/download/ArmDebugger-075.rar
- альтернативный способ задания пула:
MallocAddress=... - адрес функции malloc
MallocPages=... - количество страниц, выделяемых через malloc
- исправлена работа с vkp-файлами
- исправлен баг в генераторе cgsn-патча
- добавлен терминал
Для S75 fw24:
MallocAddress = 0xa024a318;
MallocPages = 50;
|
|
^ Вверх ^ |
|
 |

chaos
Глав. Хелпер
Популярность: +132 (140)
Имя: Дмитрий
Возраст: 44
С нами с: 15.12.2003
Сообщений: 55
Откуда: Kiev
|
14/15 Добавлено:Ср Июл 19, 2006 19:49 Заголовок сообщения: |
|
|
ArmDebugger 0.7.7
http://chaos.allsiemens.com/download/ArmDebugger-077.rar
- более стабильный коннект
- пошаговое выполнение thumb MOV PC/LR,...
- восстановление контекста после абортов при вызове функции или выполнении программы (не всегда конечно, но чаще всего работает)
- нумерация событий (снаппоинтов) в окне журнала
- возможность удаления строк в окне результатов поиска
- другие мелкие улучшения и багфиксы
|
|
^ Вверх ^ |
|
 |
Sensor77
Зелёный
Популярность: 0 (0)
Имя: Геннадий
Возраст: 42
С нами с: 02.10.2006
Сообщений: 1
Откуда: Беларусь
Модель телефона: A60, C65
|
15/15 Добавлено:Пн Окт 02, 2006 22:36 Заголовок сообщения: |
|
|
Уважаемый Chaos!
Как пользовать патч CSGN, сделанный ARMDebugger, в обычной терминалке? При запуске телефона все данные читаются как 0xFF. Если сначала запустить ARM, а затем терминалку - то всё нормально. Телефон - С65.
|
|
^ Вверх ^ |
|
 |
|