Hello,
I have a kernel panic that prints a backtrace, but no kernel dump. The lines in the backtrace has the usual format:
[<addr1>] ? func1+num1/num2 [module1]
I understand that num1 is the address offset from the beginning of func1. What is num2?
I tried to narrow down the location in func1() by doing the following steps:
loaded file1.o file into gdb and issued a "disassemble func1".
The disassembled version of func1, the lines pertaining to function calls in func1() has the following format:
...............callq num3 <func1+num4> <====
And NOT the following format I am used to:
.................callq <addr2> <func2>
(func2 is a function called from within func1)
My question is related to line marked with <====
- Looking closely as the values of num3 and num4, the instruction seems to point to a location somewhere in func1 itself, and not the called function- func2. I must be reading the instruction wrong? How does one interpret the "calls" instruction.
- I understand I can't get something like addr2 in the line marked with <==== as the object file is not linked to the kernel. However, is there any way or tools I can use so the function name shows up in the the line <====. That would make it easier for me to understand the disassembled code.
Using gdb on the kernel module (*.ko) did not make a difference in the disassemble output.
I apologize for my cryptic question and for posting this question here as this is not related to crash, however, I felt the audience of this mailing list might be able to help.
Thank you,
Ahmed.
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility