WINAVR вопрос отладки по COFF

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Hello!
Требуется помощь клуба. Есть тестовый проект.
Исходники : два *.С файла, два *.S файла с ассемблером.
в одном asm исходнике - i2c, в другом - работа с клавиатурой.
Компилится нормально, работает. Пытаюсь сделать отладку в COFF или EXTCOFF.

------------------------------------------------
avr-objcopy --debugging --change-section-address .data-0x800000
--change-section-address .bss-0x800000 --change-section-address
.noinit-0x800000 --change-section-address .eeprom-0x810000
-O coff-ext-avr main.elf main.cof

Warning: file D:\Temp/ccmKaaaa.s not found in symbol table, ignoring
Warning: ignoring function i2c_init() outside any compilation unit
Warning: file D:\Temp/cc2Haaaa.s not found in symbol table, ignoring
Warning: ignoring function query_keyboard() outside any compilation unit
------------------------------------------------

Вскрытие показало, что эти файлы представляют из себя сгенеренный исходник
ассемблеровских модулей, генерятся в процессе компиляции в указанной папке,
но стираются, соответственно, в COFF нет ссылки на них, ну и отладка
по asm исходникам в Avrstudio невозможна, виден только голый код.

Это действительно так, или только у меня ?

With best regards,
Alexander


WINAVR вопрос отладки по COFF
Привет Alexander!

21 Oct 03 09:08, Alexander Rozhkov писал All:

 AR> Warning: file D:\Temp/ccmKaaaa.s not found in symbol table, ignoring
 AR> Warning: ignoring function i2c_init() outside any compilation unit
 AR> Warning: file D:\Temp/cc2Haaaa.s not found in symbol table, ignoring
 AR> Warning: ignoring function query_keyboard() outside any compilation
 AR> unit

    А ты просил компилятор генерить отладочную информацию?

 AR> Это действительно так, или только у меня ?

    Я пытался когда-то сделать coff-объектники, но ничего не вышло с несколько
иными симптомами: файл успешно генерился, по при загрузке его в avr-студию в
ней отображались не все модули. По какому принципу, понять не удалось (при
смене порядка линковки одни модули появлялись, другие - наоборот, пропадали).
Тогда я бросил эту затею и продолжил отлаживаться в avrobj. Собственно,
единственный минус - что нельзя переменные смотреть через watch.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Западно-уpальское pегиональное общество добpовольных учpедителей.

WINAVR вопрос отладки по COFF
Tue, 21 Oct 2003 22:28:46 +0400 Alex Mogilnikov wrote to Alexander Rozhkov:


[...]

AM>     Я пытался когда-то сделать coff-объектники, но ничего не вышло с
AM> несколько иными симптомами: файл успешно генерился, по при загрузке его в
AM> avr-студию в ней отображались не все модули. По какому принципу, понять не
AM> удалось (при смене порядка линковки одни модули появлялись, другие -
AM> наоборот, пропадали). Тогда я бросил эту затею и продолжил отлаживаться в
AM> avrobj. Собственно, единственный минус - что нельзя переменные смотреть
AM> через watch.

    Ага, если еще вспомнить, что окошко locals там отсутствует как класс, то
как вообще мониторить переменные?

    А родимый gdb (insight) не пробовал?

...so long!

### Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.



WINAVR вопрос отладки по COFF
Hello, Alex!

 AM>     Я пытался когда-то сделать coff-объектники, но ничего не вышло с
 AM> несколько иными симптомами: файл успешно генерился, по при загрузке
 AM> его в avr-студию в ней отображались не все модули. По какому
 AM> принципу, понять не удалось (при смене порядка линковки одни модули
 AM> появлялись, другие - наоборот, пропадали). Тогда я бросил эту затею
 AM> и продолжил отлаживаться в avrobj. Собственно, единственный минус -
 AM> что нельзя переменные смотреть через watch.

  Сечас в Winavr 3.2 это пофиксено. Причем отладку можно вести в COFF
для avrstudio 3.XX либо в EXTCOFF, для аврстудио 4.XX.
Отладка по С исходникам бродит отлично, переменные показывает.
По ASM - не хочет. Проблему я описал выше.

With best regards.
Alexander


WINAVR вопрос отладки по COFF
Thu, 23 Oct 2003 08:04:11 +0400 Alexander Rozhkov wrote to Alex Mogilnikov:

AM>>     Я пытался когда-то сделать coff-объектники, но ничего не вышло с
AM>> несколько иными симптомами: файл успешно генерился, по при загрузке
AM>> его в avr-студию в ней отображались не все модули. По какому
AM>> принципу, понять не удалось (при смене порядка линковки одни модули
AM>> появлялись, другие - наоборот, пропадали). Тогда я бросил эту затею
AM>> и продолжил отлаживаться в avrobj. Собственно, единственный минус -
AM>> что нельзя переменные смотреть через watch.

AR>   Сечас в Winavr 3.2 это пофиксено. Причем отладку можно вести в COFF
AR> для avrstudio 3.XX либо в EXTCOFF, для аврстудио 4.XX.

    Только ++ они не поддерживает. Ни тот, ни другой.


...so long!

### Детей интересует вопрос: откуда все берется, взрослых - куда все девается.




WINAVR вопрос отладки по COFF
Привет Alexander!

23 Oct 03 09:04, Alexander Rozhkov писал Alex Mogilnikov:

 AM>>     Я пытался когда-то сделать coff-объектники, но ничего не
 AM>> вышло с несколько иными симптомами: файл успешно генерился, по
 AM>> при загрузке его в avr-студию в ней отображались не все модули.

 AR>   Сечас в Winavr 3.2 это пофиксено.

    Winavr тут ни при чем, я испльзовал gcc и их же binutils.
    Собственно, невозможность глядеть переменные была не такой уж большой
проблемой на фоне общего "качества" и "надежности" avr-студии. Как я позже
понял по примерам программ для at91 с атмеловского фирменного диска, в Атмел
вообще не умеют писать программы. :(

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Северо-Кавказская межрегиональная ассоциация анонимных соискателей.

Re: WINAVR вопрос отладки по COFF
Привет Harry!

24 Oct 03 22:55, Harry Zhurov писал Alex Mogilnikov:

 AM>>     Вот сейчас собрал avr-gdb ради интереса, и не обнаружил у него
 AM>> target sim. А, извиняюсь, как же им отлаживаются?

 HZ>      Hе знаю, как по-правильному, но я делал так: запускаешь
 HZ> simulavr.exe (это, как я понял, драйвер симулятора), он сообщает номер
 HZ> некоего порта (у меня это 1212).

    А, действительно, есть внешние симуляторы. Сейчас соберу avarice и
посмотрю...

 HZ>  Как всегда документировано все это - в лучших традициях GCC (да
 HZ> простят меня апологеты оного) - хуже некуда - цепочку эту восстановил
 HZ> путем анализа разрозненной документации.

    Как обычно, :) приведу цитату из документации:

Remote debugging
================

   If you are trying to debug a program running on a machine that
cannot run GDB in the usual way, it is often useful to use remote
debugging.

    [....]

   Some configurations of GDB have special serial or TCP/IP interfaces
to make this work with particular debugging targets.  In addition, GDB
comes with a generic serial protocol (specific to GDB, but not specific
to any particular target system) which you can use if you write the
remote stubs--the code that runs on the remote system to communicate
with GDB.
   Other remote targets may be available in your configuration of GDB;
use `help target' to list them.

 HZ>     После этого оно, вроде, как-то работает, но криво: регистры и
 HZ> память (а также local и watch) не отображают значений, программа идет
 HZ> как-то странно... В общем, плюнул я на это дело, пришлось в студию
 HZ> бинарник загружать и там смотреть, благо вещь была разовая и смотреть
 HZ> много не пришлось.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Западно-уpальское pегиональное общество добpовольных учpедителей.

WINAVR вопрос отладки по COFF
Привет Harry!

25 Oct 03 22:15, Alex Mogilnikov писал Harry Zhurov:

    Собрал я и simulavr.

 HZ>>     После этого оно, вроде, как-то работает, но криво: регистры и
 HZ>> память (а также local и watch) не отображают значений,

    ? Hабросал тестовую программку, запустил симулятор, запустил отладчик.

    - значения глобальных переменных показывает;
    - значения автоматических переменных показывает;
    - значения регистров показывает;
    - содержимое памяти программы показывает;
    - содержимое памяти данных показывает;
    - содержимое eeprom показывает;
    - breakpoints работают;
    - watchpoints работают;
    - машинный код (дизассемблированный) показывается;
    - run/cont/next/step/nexti работают.

    Подозреваю, что периферия симулируется не очень здорово, я это не проверял,
ну так про этот симулятор так и говорится: "This program is still under
development and is not ready for production use."

 HZ>>  программа идет как-то странно...

    У меня программа очень простая, но идет как полжено (может ты компилировал
с включенной оптимизацией? Тогда это нормально. Для отладки рекомендуется -O0).

    Похоже, или у тебя что-то криво собрано, или ты просто не умеешь это
готовить (не прочитал доки)...

    Как обычно, версии того что я тестировал:

alx2% simulavr -v

simulavr version 0.1.1
Copyright 2001, 2002  Theodore A. Roth.

alx2% avr-gdb --version
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... О сколько нам откpытий чудных готовит откpывашки кpюк!

WINAVR вопрос отладки по COFF
Mon, 27 Oct 2003 01:53:59 +0300 Alex Mogilnikov wrote to Harry Zhurov:

AM>     Собрал я и simulavr.

HZ>>>     После этого оно, вроде, как-то работает, но криво: регистры и
HZ>>> память (а также local и watch) не отображают значений,

AM>     ? Hабросал тестовую программку, запустил симулятор, запустил отладчик.

AM>     - значения глобальных переменных показывает;
AM>     - значения автоматических переменных показывает;
AM>     - значения регистров показывает;
AM>     - содержимое памяти программы показывает;
AM>     - содержимое памяти данных показывает;
AM>     - содержимое eeprom показывает;
AM>     - breakpoints работают;
AM>     - watchpoints работают;
AM>     - машинный код (дизассемблированный) показывается;
AM>     - run/cont/next/step/nexti работают.

AM>     Подозреваю, что периферия симулируется не очень здорово, я это не
AM> проверял, ну так про этот симулятор так и говорится: "This program is still
AM> under development and is not ready for production use."

HZ>>>  программа идет как-то странно...

AM>     У меня программа очень простая, но идет как полжено (может ты
AM> компилировал с включенной оптимизацией? Тогда это нормально. Для отладки
AM> рекомендуется -O0).

    Попробовал и так - без разницы.

AM>     Похоже, или у тебя что-то криво собрано,

    Это я не сам собирал (не занимаюсь я такими делами, да и нет у меня
окружения соответствующего для этого), ибо не работаю с GCC.

AM> или ты просто не умеешь это готовить (не прочитал доки)...

    А... Интересно, как это можно запустить, чтобы работало криво? Понимаю,
либо смог запустить (и работает), либо не смог. А так, чтоб запустилось, но
криво... :-\

    Ну, научи убогого, что не так делаю. А делаю так:

        simulavr -d atmega16 -g

    На это оно выдает:

Simulating a atmega16 device.

MESSAGE: file ../../src/decoder.c: line 3517: generating opcode lookup_table
Waiting on port 1212 for gdb client to connect...


    Дальше запускаю

        avr-insight.exe Exe\target.elf

    (да, я не gdb использую, а insight, бо не понимаю толка в тонких
извращениях; но должно быть монохренственно - это ведь, afaik, одно и то же,
только UI разный).

    Там указываю GDB Server TCP/IP, порт 1212, и оно, вроде пошло. Шаги
выполняются, но функции не вызываются (команда call проходится, как будто это
'nop'), окошки с регистрами, памятью и прочим не обновляются (нули там), только
PC изменяется. И почти на каждую команду в окне драйвера выдается такое:

WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff
WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff
WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff
WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff


AM>     Как обычно, версии того что я тестировал:

AM> alx2% simulavr -v

AM> simulavr version 0.1.1
AM> Copyright 2001, 2002  Theodore A. Roth.


I:\CAD\GCC\AVR\bin>simulavr.exe -v

simulavr version 0.1.1.20030912
Copyright 2001, 2002, 2003  Theodore A. Roth.


AM> alx2% avr-gdb --version
AM> GNU gdb 5.3
AM> Copyright 2002 Free Software Foundation, Inc.


I:\CAD\GCC\AVR\bin>avr-insight.exe -v
GNU gdb 5.3.91


...so long!

### "Hello World!" 17 errors, 31 warnings.



Re: WINAVR вопрос отладки по COFF
Привет Harry!

22 Oct 03 22:17, Harry Zhurov писал Alex Mogilnikov:

 HZ>     Ага, если еще вспомнить, что окошко locals там отсутствует как
 HZ> класс, то как вообще мониторить переменные?

    :) Смотрю в map ее адрес, затем лезу в память по этому адресу. :)

 HZ>     А родимый gdb (insight) не пробовал?

    Я тогда отлаживался эмулятором ICE-200, и альтернативы Астудии не было.
Потом низкоуровневые дела более-менее отладил, и отладчиком почти не
пользовался. А последнее время вообще для avr ничего не делаю.

    Вот сейчас собрал avr-gdb ради интереса, и не обнаружил у него target sim.
А, извиняюсь, как же им отлаживаются?

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Если ты коп, почему я весь взмок?

WINAVR вопрос отладки по COFF
Thu, 23 Oct 2003 23:34:15 +0400 Alex Mogilnikov wrote to Harry Zhurov:

AM> 22 Oct 03 22:17, Harry Zhurov писал Alex Mogilnikov:

HZ>>     Ага, если еще вспомнить, что окошко locals там отсутствует как
HZ>> класс, то как вообще мониторить переменные?

AM>     :) Смотрю в map ее адрес, затем лезу в память по этому адресу. :)

    Мда.., круто! ;-))

HZ>>     А родимый gdb (insight) не пробовал?

AM>     Я тогда отлаживался эмулятором ICE-200, и альтернативы Астудии не было.
AM> Потом низкоуровневые дела более-менее отладил, и отладчиком почти не
AM> пользовался. А последнее время вообще для avr ничего не делаю.

AM>     Вот сейчас собрал avr-gdb ради интереса, и не обнаружил у него target
AM> sim. А, извиняюсь, как же им отлаживаются?

     Не знаю, как по-правильному, но я делал так: запускаешь simulavr.exe (это,
как я понял, драйвер симулятора), он сообщает номер некоего порта (у меня это
1212). Потом запускаешь insight, где выбираешь GDB Server TCP/IP и указываешь
то самое значение порта. Это такая процедура запуска - сам GDB/insight
симулировать ничего не умеет. Как всегда документировано все это - в лучших
традициях GCC (да простят меня апологеты оного) - хуже некуда - цепочку эту
восстановил путем анализа разрозненной документации.

    После этого оно, вроде, как-то работает, но криво: регистры и память (а
также local и watch) не отображают значений, программа идет как-то странно... В
общем, плюнул я на это дело, пришлось в студию бинарник загружать и там
смотреть, благо вещь была разовая и смотреть много не пришлось. А coff там не
проканал, т.к. прога была плюсовая (coff-avr с ++ не дружит :( )


...so long!

### Есть два способа командовать женщинами. Hо их никто не знает.



Site Timeline