1

Тема: Отладка на устройстве?

собственно, есть винда и образ Maemo_Ubuntu_Intrepid_Desktop_SDK_Virtual_Image_Final.7z
всё работает в пределах эмулятора, но мне нужно мучать программу на железке.
Опишите, как настроить процесс, учитывая, что я не могу управлять ip-адресами, и назначить мобилке адрес 192.168.2.15 ну никак не могу

Добавлено: 14.02.2010 08:18:43

наверное, лучше, если связь будет по вафле

Поделиться

2

Re: Отладка на устройстве?

Если просто хочешь отладить программу на устройстве то в репозиториях есть gdb. Ну и дальше через терминал можешь начинать отладку.
Если удаленно хочешь отлаживать то тебе все равно нужен gdb на устройстве. А дальше вот например инструкция:
http://davis.lbl.gov/Manuals/GDB/gdb_17.html
Думаю если еще дальше поискать то возможно и найти как настроить такую удаленную отладку в какой-нибудь IDE.
Ну и никто не мешает поставить openssh на устройство и через него запускать gdb и отлаживать.

Сайт SR

Поделиться

3

Re: Отладка на устройстве?

спасибо.
сразу не уточнил, ide у меня esbox, по документации надо поставить pc-connectivity, и установить статический адрес 192.168.2.15. по ssh я могу зайти, но адрес мобилы 192.168.2.234, где это прописать в есбоксе, я не могу понять. Сказывается отсутствие опыта пользования линуксом

Поделиться

4

Re: Отладка на устройстве?

а на телефоне адрес изменть можешь? я задал статический, чтобы удобно было через ссш залезать

Поделиться

5

Re: Отладка на устройстве?

wl пишет:

спасибо.
сразу не уточнил, ide у меня esbox, по документации надо поставить pc-connectivity, и установить статический адрес 192.168.2.15. по ssh я могу зайти, но адрес мобилы 192.168.2.234, где это прописать в есбоксе, я не могу понять. Сказывается отсутствие опыта пользования линуксом

Я просто sdk ставил отдельно по кускам. Готовый виртуальный образ я не видел и как так ide настроена я не видел. Да и с esbox я не работал (на сколько я понял это просто вариант Eclipse). Ну и соединял с компьютером телефон я только через wifi.
Постараюсь скачать виртуальный образ и посмотреть как там все настроено.
Пока попробуй предложенным мною способом подключиться к устройству.
Вот еще инструкция по удаленной отладки для Eclipse (надеюсь перевод не требуется):
Run gdbserver on the generated executable using a command like gdbserver localhost:10900 ./my
In Eclipse go to Run ? "Open Run Dialog...", and go to the upper debugger tab and select gdbserver Debugger in the Debugger drop-down. Afterwards, go to the "Connection" tab under Debugger Options and configure your connection. For my demonstration I've chosen "Type: TCP" "Host: localhost" and "Port number: 10900".
Select the Run ? Debug in Eclipse option and start debugging the application.
Думаю там же в настройках ты и ip можешь изменить к которому подключаться.

Сайт SR

Поделиться

6

Re: Отладка на устройстве?

что-то я туплю. эклипс  надо на виртуалке ставить, или можно на виндах настроить?

Поделиться

7

Re: Отладка на устройстве?

wl пишет:

что-то я туплю. эклипс  надо на виртуалке ставить, или можно на виндах настроить?

На винду нету же никаких инструментов (gcc, gdb итд.) для сборки под Maemo. Сам еклипс то запустится, но вот сделать без этих инструментов ничего не сможет. Так что запускать в виртуалке.
И я так понял там же уже есть предустановленный esbox который и есть еклипс просто какая-то из его сборок. Там все так же должно настраиваться.

Сайт SR

Поделиться

8

Re: Отладка на устройстве?

никак не удается установить пакет maemo-c-debug-tools
пишет файл поврежден, или из консоли, size mismatch.

остался всего последний шаг и такая засада

Поделиться

9

Re: Отладка на устройстве?

wl пишет:

никак не удается установить пакет maemo-c-debug-tools
пишет файл поврежден, или из консоли, size mismatch.

остался всего последний шаг и такая засада

Похоже на проблему с репозиторием. Думаю об этом стоит сообщить на официальном сайте чтобы побыстрее исправили.

Сайт SR

Поделиться

10

Re: Отладка на устройстве?

Всё, наконец-то всё настроил на виртуальной машине. работает примерно также паршиво, как и on-device-debug на Carbide.C++ для симбиана, но обнаружилась одна очень досадная бага esbox: окно Dissasembly при отладке на устройстве НЕ ЗАПОЛНЯЕТСЯ, в таких условиях делать эмулятор айфона очень затруднительно (ради чего всё это собственно и затевалось), я пока свой собственный самодельный код

  
  mov r0, #123
  bx lr

запустил из хипа, покрыл матом и нокию, и линупс, и маему в частности.
Надеюсь исправят баг в следующей версии

Поделиться

11

Re: Отладка на устройстве?

wl пишет:

Надеюсь исправят баг в следующей версии

Баг открыли? В смысле, они знают, что исправлять?

N800 -> N810 -> N900

Поделиться

12

Re: Отладка на устройстве?

нет, пока не осилил, как это делается. и как поискать, может он уже открыт

Поделиться

13

Re: Отладка на устройстве?

wl
bugs.maemo.org
Там можно поискать какие баги уже есть (ну или просто список посмотреть) и если такой баг уже есть то дальше можно просто за него голосовать и если есть что к нему добавить то стоит добавить любую информацию которая могла бы быть полезной в обсуждении бага.
Ну а если такого бага там нет то его можно там же добавить. При открытии нового бага сразу будет шаблон сообщения который нужно заполнить. Там из самого шаблона вполне понятно становится что нужно писать в сообщении и какая информация про баг требуется.

Сайт SR

Поделиться

14

Re: Отладка на устройстве?

ой, извиняюсь что поднял панику, не тот view открыл оказывается, дизасм показывается на виде "DSF Dissasembly", но счастья это не приносит - зайти в мою функцию не удается. Судя по всему, gdb не умеет гулять по коду без исходников. Если кто-нибудь знает, как его насильно заставить, буду благодарен.
вот минимальный кусок кода для теста:

typedef int (*func)();
void test()
{
    long psize = sysconf(_SC_PAGESIZE);
    int* mem = (int*)valloc(psize);

    mem[0] = 0xE3A0007B; //  mov r0, #123
    mem[1] = 0xE12FFF1E; //  bx lr

    int r = mprotect( mem, psize, PROT_READ | PROT_EXEC);
    if(r>=0)
    {
        func f = (func)mem;
        int res = f(); // <-- брекпоинт тут, после этого, нажимать F5 в окне DSF Dissasembly
        mprotect( mem, psize, PROT_READ | PROT_WRITE);
    }
    free( mem);
}

нужно прошагать по двух командам mov и bx

Поделиться