🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
3 messages
3 total messages Started by pw Sat, 08 Jan 2011 09:15
call trace
#72121
Author: pw
Date: Sat, 08 Jan 2011 09:15
17 lines
1284 bytes
Witam,
Modul jadra zawiesza sie i drukuje call trace w postaci:

funkcja1+0x31e/0x430 [modul1]
funkcja2+0x0/0x10
funkcja3+0xcf/0x1b0 [modul1]
[...]
Code: Baid EIP Value
EIP: [<00000000>] 0x0

Chcialbym odczytac z call trace numer lini kodu zrodlowego, nazwy 
funkcji sa natomiast, nie wiem ktora to linijka kodu ... zapewne chodzi 
o te numery hex przy funkcjach, ale jak je skonwertowac na numer lini 
kodu zrodlowego?

pozdrawiam,
pw
Re: call trace
#72122
Author: Adam Osuchowski
Date: Sat, 08 Jan 2011 12:07
23 lines
1750 bytes
pw wrote:
> Modul jadra zawiesza sie i drukuje call trace w postaci:
>
> funkcja1+0x31e/0x430 [modul1]
> funkcja2+0x0/0x10
> funkcja3+0xcf/0x1b0 [modul1]
> [...]
> Code: Baid EIP Value
> EIP: [<00000000>] 0x0
>
> Chcialbym odczytac z call trace numer lini kodu zrodlowego, nazwy funkcji 
> sa natomiast, nie wiem ktora to linijka kodu ... zapewne chodzi o te numery 
> hex przy funkcjach, ale jak je skonwertowac na numer lini kodu zrodlowego?

Liczby przy nazwach funkcji to offset miejsca wywołania względem początku
funkcji i długość funkcji. Przed wszystkim, skompiluj kernel z włączoną opcją
,,Compile the kernel with debug info'' (CONFIG_DEBUG_INFO). Potem znajdź
adres początku funkcji, dodaj do niego offset, a następnie narzędziem
addr2line z binutilsów zamień go na nazwę pliku i numer linii.

BTW, bierzesz się za programowanie kernela, a nie wiesz jak go potem
debugować. Może poćwicz najpierw w user-space, a nie skacz od razu na
głęboką wodę.
Re: call trace
#72123
Author: pw
Date: Sat, 08 Jan 2011 15:03
26 lines
2089 bytes
On 01/08/2011 01:07 PM, Adam Osuchowski wrote:
> pw wrote:
>> Modul jadra zawiesza sie i drukuje call trace w postaci:
>>
>> funkcja1+0x31e/0x430 [modul1]
>> funkcja2+0x0/0x10
>> funkcja3+0xcf/0x1b0 [modul1]
>> [...]
>> Code: Baid EIP Value
>> EIP: [<00000000>] 0x0
>>
>> Chcialbym odczytac z call trace numer lini kodu zrodlowego, nazwy funkcji
>> sa natomiast, nie wiem ktora to linijka kodu ... zapewne chodzi o te numery
>> hex przy funkcjach, ale jak je skonwertowac na numer lini kodu zrodlowego?
>
> Liczby przy nazwach funkcji to offset miejsca wywołania względem początku
> funkcji i długość funkcji. Przed wszystkim, skompiluj kernel z włączoną opcją
> ,,Compile the kernel with debug info'' (CONFIG_DEBUG_INFO). Potem znajdź
> adres początku funkcji, dodaj do niego offset, a następnie narzędziem
> addr2line z binutilsów zamień go na nazwę pliku i numer linii.
>
> BTW, bierzesz się za programowanie kernela, a nie wiesz jak go potem
> debugować. Może poćwicz najpierw w user-space, a nie skacz od razu na
> głęboką wodę.

ok, wielkie dzieki
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