Thread View: pl.comp.lang.asm
3 messages
3 total messages
Started by Tomek
Sat, 09 Jun 2007 20:34
problem z asemblerem i plikiem ELF
Author: Tomek
Date: Sat, 09 Jun 2007 20:34
Date: Sat, 09 Jun 2007 20:34
85 lines
4777 bytes
4777 bytes
Witam grupowiczow.
Pisze na zaliczenie prosty assembler generujacy pliki w formacie ELF.
Napotkalem na taki oto blad, przy generowaniu pliku wynikowego dostaje
informacje, ze relokacje odnosza sie do nieistniejacego symbolu o
indeksie 4, podczas gdy w tablicy o indeksie 4 jest sekcja, z ktorej
relokuje pliki. Nie mam pojecia o co chodzi, tablica symbolica jest
identyczna do tej generowanej przez nasm, jednak tam nie ma tego
bledu. nie mam pojecia o co chodzi. prosze bardzo o pomoc.
readelf -a zwraca nastepujace wyniki:
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 448 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 7
Section header string table index: 3
Section Headers:
[Nr] Name Type Addr Off Size ES Flg
Lk Inf Al
[ 0] NULL 00000000 000000 000000
00 0 0 0
[ 1] .text PROGBITS 00000000 000100 00002e 00
AX 0 0 16
[ 2] .data PROGBITS 00000000 0000f0 000005 00
WA 0 0 4
[ 3] .shstrtab STRTAB 00000000 000130 000032
00 0 0 1
[ 4] .symtab SYMTAB 00000000 000040 0000b0
10 5 10 4
[ 5] .strtab STRTAB 00000000 000170 00001e
00 0 0 1
[ 6] .rel.text REL 00000000 000190 000028
08 0 0 4
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor
specific)
There are no section groups in this file.
There are no program headers in this file.
Relocation section '.rel.text' at offset 0x190 contains 5 entries:
Offset Info Type Sym.Value Sym. Name
00000012 00000401 R_386_32 bad symbol index: 00000004
00000018 00000401 R_386_32 bad symbol index: 00000004
0000001e 00000401 R_386_32 bad symbol index: 00000004
00000024 00000401 R_386_32 bad symbol index: 00000004
0000002a 00000401 R_386_32 bad symbol index: 00000004
There are no unwind sections in this file.
Symbol table '.symtab' contains 11 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 FILE LOCAL DEFAULT ABS dupa.o
2: 00000000 0 SECTION LOCAL DEFAULT ABS
3: 00000000 0 SECTION LOCAL DEFAULT 1
4: 00000000 0 SECTION LOCAL DEFAULT 2
5: 00000000 0 NOTYPE LOCAL DEFAULT 2 l0
6: 00000001 0 NOTYPE LOCAL DEFAULT 2 l1
7: 00000002 0 NOTYPE LOCAL DEFAULT 2 l2
8: 00000003 0 NOTYPE LOCAL DEFAULT 2 l3
9: 00000004 0 NOTYPE LOCAL DEFAULT 2 l4
10: 00000000 0 NOTYPE GLOBAL DEFAULT 1 _start
No version information found in this file.
Re: problem z asemblerem i plikiem ELF
Author: Michal Schulz
Date: Sun, 10 Jun 2007 05:52
Date: Sun, 10 Jun 2007 05:52
27 lines
1793 bytes
1793 bytes
Tomek wrote: > Witam grupowiczow. > > Pisze na zaliczenie prosty assembler generujacy pliki w formacie ELF. > Napotkalem na taki oto blad, przy generowaniu pliku wynikowego dostaje > informacje, ze relokacje odnosza sie do nieistniejacego symbolu o > indeksie 4, podczas gdy w tablicy o indeksie 4 jest sekcja, z ktorej > relokuje pliki. Nie mam pojecia o co chodzi, tablica symbolica jest > identyczna do tej generowanej przez nasm, jednak tam nie ma tego > bledu. nie mam pojecia o co chodzi. prosze bardzo o pomoc. To tak na pierwszy rzut oka: > [ 6] .rel.text REL 00000000 000190 000028 > 08 0 0 4 Tu masz blad. Po pierwsze nie wiadomo w ktorej sekcji pliku sa symbole, ktorych relokacje dotycza (Lk = 0, powinno byc Lk = 4), a po drugie nie wiadomo w ktorej sekcji owe relokacje maja byc przeprowadzone (Inf = 0, powinno byc Inf = 1). Polecam lekture: http://fly.isti.cnr.it/didattica/link/elf.pdf, bo tego kolega chyba nie czytal :) -- Michal Schulz
Re: problem z asemblerem i plikiem ELF
Author: Tomek
Date: Sun, 10 Jun 2007 17:44
Date: Sun, 10 Jun 2007 17:44
30 lines
2424 bytes
2424 bytes
On 10 Cze, 07:52, Michal Schulz <michal.sch...@onet.eu> wrote: > > [ 6] .rel.text REL 00000000 000190 000028 > > 08 0 0 4 > > Tu masz blad. Po pierwsze nie wiadomo w ktorej sekcji pliku sa symbole, > ktorych relokacje dotycza (Lk = 0, powinno byc Lk = 4), a po drugie nie > wiadomo w ktorej sekcji owe relokacje maja byc przeprowadzone (Inf = 0, > powinno byc Inf = 1). Dzieki, choc ju sam wczesniej znalazlem swoj blad :). I to bylo dokladnie to o czym napisa es. Zwykle przeoczenie, zostawilem na pozniej i zapomnialem uzupelni . I krwi mi to napsulo. :) > Polecam lekture:http://fly.isti.cnr.it/didattica/link/elf.pdf, bo tego > kolega chyba nie czytal :) Czytal, oczywiscie, ze czytal :) Bez tego dokumentu ciezko byloby mi cokolwiek sklecic, a tu jednak strukturka byla jak ta lala zrobiona od podstaw. Po prostu mi umknely te argumenty sekcji relokacyjnej. To moj pierwszy kompilator w zyciu, ktory napisalem, wiec bledy i przeoczenia byly nie do unikniecia. A tak BTW polecam tez polskie tlumaczenie tego dokumentu, moze komus sie przyda. :) http://www.cs.put.poznan.pl/adanilecki/inline_asm/elf.php Dzieki raz jeszcze za pomoc :) -- Pozdrawiam TW
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads