Перейти к содержанию
    

дополнительные секции в ld-скрипте: не распознаются gdb

Eclipse+yagarto+j-link, отладка проходит нормально, пока не использую собственную секцию в линкер-скрипте, она мне нужна для буферов dma.

Если размещаю что нибудь в (section(".nocache")), дебаггер пишет No symbol table is loaded, то есть вижу только дизассемблер, не ставятся брейкпойнты и т.п.

Поделитесь опытом... Или идеями..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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.

 

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

Изменено пользователем Атмег

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а версия gdb какая, мож посвежее попробывать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Криминала вроде не вижу. Но не вижу и положенных отладочных секций в скрипте. Попробуйте добавить в конец скрипта что-то вроде

/* 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) }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Отладочные секции добавил, но разницы нет, проблема осталась :(

Бинарники сравнил по содержимому, они практически идентичны (наверно эти секции игнорируются?).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...