Sorry. I know how to use addr2line. But it is not what I'm looking for.

For example, with i386 kernel, it is easy to find c017e7a5 belong to
function get_user.

x86]$ vi /hack/linux-3.12.6/Documentation/x86/exception-tables.txt
.............
217 or in human readable byte order:
218
219  >  c01aa7c4 c017c093 c0199fe0 c017c097 c017c099  ................
220  >  c01aa7d4 c017c2f6 c0199fe9 c017e7a5 c0199ff5  ................
221                                                       ^^^^^^^^^^^^^^^^^
222                                this is the interesting part!
223  >  c01aa7e4 c0180a08 c019a001 c0180a0a c019a004  ................

my question is how to find 0xffdc6eb8 belong to which uml kernel function.

thanks



On Fri, May 30, 2014 at 3:45 PM, Richard Weinberger
<richard.weinber...@gmail.com> wrote:
> On Fri, May 30, 2014 at 9:29 AM, enjoy mindful <enjoymind...@gmail.com> wrote:
>> Hi, all
>>   I build linux-3.12.6 uml with default configure.
>>
>> tar -jxf linux-3.12.6.tar.bz2
>> cd linux-3.12.6
>> make ARCH=um defconfig
>> make ARCH=um linux
>>
>> I'm confused about the exception table of the uml kernel.
>>
>>
>> $ objdump --full-contents --section=__ex_table linux
>>
>> linux:     file format elf32-i386
>>
>> Contents of section __ex_table:
>>  82a5048 3e6fdcff bcbaf6ff 396fdcff b4baf6ff  >o......9o......
>>  82a5058 336fdcff acbaf6ff 306fdcff bfbaf6ff  3o......0o......
>>  82a5068 2b6fdcff 9cbaf6ff 286fdcff afbaf6ff  +o......(o......
>>  82a5078 236fdcff 8cbaf6ff 206fdcff 9fbaf6ff  #o...... o......
>>  82a5088 1b6fdcff 7cbaf6ff 186fdcff 8fbaf6ff  .o..|....o......
>>  82a5098 136fdcff 6cbaf6ff 106fdcff 7fbaf6ff  .o..l....o......
>>  82a50a8 0b6fdcff 5cbaf6ff 086fdcff 6fbaf6ff  .o..\....o..o...
>>  82a50b8 036fdcff 4cbaf6ff 006fdcff 5fbaf6ff  .o..L....o.._...
>>  82a50c8 fb6edcff 3cbaf6ff f86edcff 4fbaf6ff  .n..<....n..O...
>>  82a50d8 f36edcff 2cbaf6ff f06edcff 3fbaf6ff  .n..,....n..?...
>>  82a50e8 eb6edcff 1cbaf6ff e86edcff 2fbaf6ff  .n.......n../...
>>  82a50f8 e36edcff 0cbaf6ff e06edcff 1fbaf6ff  .n.......n......
>>  82a5108 db6edcff fcb9f6ff d86edcff 0fbaf6ff  .n.......n......
>>  82a5118 d36edcff ecb9f6ff d06edcff ffb9f6ff  .n.......n......
>>  82a5128 cb6edcff dcb9f6ff c86edcff efb9f6ff  .n.......n......
>>  82a5138 c36edcff ccb9f6ff c06edcff dfb9f6ff  .n.......n......
>>  82a5148 bb6edcff bcb9f6ff b86edcff cfb9f6ff  .n.......n......
>>  82a5158 ce6edcff acb9f6ff cc6edcff bfb9f6ff  .n.......n......
>>  82a5168 cf6edcff 9cb9f6ff c96edcff afb9f6ff  .n.......n......
>>
>> Let pick the first instruction location '3e6fdcff' (in human readable
>> is 0xffdc6f3e). My question is how to find which function in UML
>> kernel has an instruction in location 0xffdc6f3e?
>
> Not sure whether I understand your question correctly.
> Isn't addr2line what you need?
>
>>
>> In i386 platform, the kernel address greater than the __PAGE_OFFSET
>> (0xC0000000). However, as skas0 sperate the uml kernel and user
>> process address space, it dose work by search address greater than the
>> __PAGE_OFFSET for UML.
>>
>> thanks
>>
>> ------------------------------------------------------------------------------
>> Time is money. Stop wasting it! Get your web API in 5 minutes.
>> www.restlet.com/download
>> http://p.sf.net/sfu/restlet
>> _______________________________________________
>> User-mode-linux-user mailing list
>> User-mode-linux-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user
>
>
>
> --
> Thanks,
> //richard

------------------------------------------------------------------------------
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user

Reply via email to