реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> дополнительные секции в ld-скрипте: не распознаются gdb
Атмег
сообщение Aug 9 2010, 12:44
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 17-05-07
Пользователь №: 27 787



Eclipse+yagarto+j-link, отладка проходит нормально, пока не использую собственную секцию в линкер-скрипте, она мне нужна для буферов dma.
Если размещаю что нибудь в (section(".nocache")), дебаггер пишет No symbol table is loaded, то есть вижу только дизассемблер, не ставятся брейкпойнты и т.п.
Поделитесь опытом... Или идеями..
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 9 2010, 15:44
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Скрипт покажите.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Атмег
сообщение Aug 9 2010, 16:11
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 17-05-07
Пользователь №: 27 787



CODE

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(entry)

MEMORY
{
//sram (W!RX) : ORIGIN = 0x300000, LENGTH = 80K
sram_1 (W!RX) : ORIGIN = 0x300000, LENGTH = 0x10000
sdram (W!RX) : ORIGIN = 0x20000000, LENGTH = 32M
sdram_nocache (W!RX) : ORIGIN = 0x22000000, LENGTH = 32M
}

SECTIONS
{
.fixed :
{
. = ALIGN(4);
_sfixed = .;
*(.text*)
*(.glue_7)
*(.glue_7t)
*(.rodata*)
*(.data)
. = ALIGN(4);
_efixed = .;
} > sdram

.prerelocate : AT (_efixed)
{
. = ALIGN(4);
_sprerelocate = .;
. = ALIGN(4);
_eprerelocate = .;
}

.postrelocate : AT (_efixed + SIZEOF(.prerelocate))
{
. = ALIGN(4);
_spostrelocate = .;
*(.vectors)
*(.ramfunc)
. = ALIGN(4);

_epostrelocate = .;
} > sram_1

.bss (NOLOAD) :
{
_szero = .;
*(.bss)
_ezero = .;
} > sdram

.nocache (NOLOAD) :
{
*(.nocache)
} > sdram_nocache

_sstack = 0x22000000;
}
end = .;



Буферы объявляю с __attribute__((section(".nocache"))).
Верхние 16k sram использую под таблицу трансляции, поэтому доступную sram_1 ограничил до 64k.

Речь именно об отладке, само по себе оно работает с этой секцией..

Сообщение отредактировал Атмег - Aug 9 2010, 16:12
Go to the top of the page
 
+Quote Post
klen
сообщение Aug 9 2010, 16:32
Сообщение #4


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



а версия gdb какая, мож посвежее попробывать
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 9 2010, 17:49
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Атмег @ Aug 9 2010, 22:11) *
Речь именно об отладке, само по себе оно работает с этой секцией..


Криминала вроде не вижу. Но не вижу и положенных отладочных секций в скрипте. Попробуйте добавить в конец скрипта что-то вроде
Код
/* Stabs debugging sections.  */
    .stab          0 : { *(.stab) }
    .stabstr       0 : { *(.stabstr) }
    .stab.excl     0 : { *(.stab.excl) }
    .stab.exclstr  0 : { *(.stab.exclstr) }
    .stab.index    0 : { *(.stab.index) }
    .stab.indexstr 0 : { *(.stab.indexstr) }
    .comment       0 : { *(.comment) }
/*
* DWARF debug sections.
* Symbols in the DWARF debugging sections are relative to the beginning
* of the section so we begin them at 0.
*/

/* DWARF 1 */
    .debug          0 : { *(.debug) }
    .line           0 : { *(.line) }
/* GNU DWARF 1 extensions */
    .debug_srcinfo  0 : { *(.debug_srcinfo) }
    .debug_sfnames  0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
    .debug_aranges  0 : { *(.debug_aranges) }
    .debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
    .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
    .debug_abbrev   0 : { *(.debug_abbrev) }
    .debug_line     0 : { *(.debug_line) }
    .debug_frame    0 : { *(.debug_frame) }
    .debug_str      0 : { *(.debug_str) }
    .debug_loc      0 : { *(.debug_loc) }
    .debug_macinfo  0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
    .debug_weaknames 0 : { *(.debug_weaknames) }
    .debug_funcnames 0 : { *(.debug_funcnames) }
    .debug_typenames 0 : { *(.debug_typenames) }
    .debug_varnames  0 : { *(.debug_varnames) }


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Атмег
сообщение Aug 10 2010, 08:51
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 17-05-07
Пользователь №: 27 787



Версия gdb 6.8.50.20080308-cvs, попробовал 7.1 - то же самое(

Отладочные секции добавил, но разницы нет, проблема осталась sad.gif
Бинарники сравнил по содержимому, они практически идентичны (наверно эти секции игнорируются?).
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 13:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016