qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3] dump: Set correct vaddr for ELF dump


From: Laszlo Ersek
Subject: Re: [Qemu-devel] [PATCH v3] dump: Set correct vaddr for ELF dump
Date: Tue, 22 Jan 2019 13:15:53 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 01/22/19 06:36, Jon Doron wrote:
> ping, so this means that the patch will be merged in?
> 
> Thanks,
> -- Jon.

Marc-André, can you please confirm if you've queued this patch for a
pull? (According to scripts/get_maintainer.pl, you are "supporter:Dump",
for both files touched by this patch.)

Apologies if I missed a message elsewhere in this thread, and I should
know already.

Thanks!
Laszlo

> 
> On Wed, Jan 9, 2019 at 12:38 PM Laszlo Ersek <address@hidden> wrote:
>>
>> On 01/09/19 09:25, Marc-André Lureau wrote:
>>> On Wed, Jan 9, 2019 at 12:22 PM Jon Doron <address@hidden> wrote:
>>>>
>>>> vaddr needs to be equal to the paddr since the dump file represents the
>>>> physical memory image.
>>>>
>>>> Without setting vaddr correctly, GDB would load all the different memory
>>>> regions on top of each other to vaddr 0, thus making GDB showing the wrong
>>>> memory data for a given address.
>>>>
>>>> Signed-off-by: Jon Doron <address@hidden>
>>>
>>> Tested-by: Marc-André Lureau <address@hidden>
>>> Reviewed-by: Marc-André Lureau <address@hidden>
>>
>> Apparently the only change in v3, relative to v2, is cleaning up the
>> whitespace problem that was caught by Patchew.
>>
>> Acked-by: Laszlo Ersek <address@hidden>
>>
>> Thanks
>> Laszlo
>>
>>>>  dump.c                       | 5 +++--
>>>>  scripts/dump-guest-memory.py | 1 +
>>>>  2 files changed, 4 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/dump.c b/dump.c
>>>> index 4ec94c5e25..de7f70f099 100644
>>>> --- a/dump.c
>>>> +++ b/dump.c
>>>> @@ -192,7 +192,7 @@ static void write_elf64_load(DumpState *s, 
>>>> MemoryMapping *memory_mapping,
>>>>      phdr.p_paddr = cpu_to_dump64(s, memory_mapping->phys_addr);
>>>>      phdr.p_filesz = cpu_to_dump64(s, filesz);
>>>>      phdr.p_memsz = cpu_to_dump64(s, memory_mapping->length);
>>>> -    phdr.p_vaddr = cpu_to_dump64(s, memory_mapping->virt_addr);
>>>> +    phdr.p_vaddr = cpu_to_dump64(s, memory_mapping->virt_addr) ? : 
>>>> phdr.p_paddr;
>>>>
>>>>      assert(memory_mapping->length >= filesz);
>>>>
>>>> @@ -216,7 +216,8 @@ static void write_elf32_load(DumpState *s, 
>>>> MemoryMapping *memory_mapping,
>>>>      phdr.p_paddr = cpu_to_dump32(s, memory_mapping->phys_addr);
>>>>      phdr.p_filesz = cpu_to_dump32(s, filesz);
>>>>      phdr.p_memsz = cpu_to_dump32(s, memory_mapping->length);
>>>> -    phdr.p_vaddr = cpu_to_dump32(s, memory_mapping->virt_addr);
>>>> +    phdr.p_vaddr =
>>>> +        cpu_to_dump32(s, memory_mapping->virt_addr) ? : phdr.p_paddr;
>>>>
>>>>      assert(memory_mapping->length >= filesz);
>>>>
>>>> diff --git a/scripts/dump-guest-memory.py b/scripts/dump-guest-memory.py
>>>> index 198cd0fe40..2c587cbefc 100644
>>>> --- a/scripts/dump-guest-memory.py
>>>> +++ b/scripts/dump-guest-memory.py
>>>> @@ -163,6 +163,7 @@ class ELF(object):
>>>>          phdr = get_arch_phdr(self.endianness, self.elfclass)
>>>>          phdr.p_type = p_type
>>>>          phdr.p_paddr = p_paddr
>>>> +        phdr.p_vaddr = p_paddr
>>>>          phdr.p_filesz = p_size
>>>>          phdr.p_memsz = p_size
>>>>          self.segments.append(phdr)
>>>> --
>>>> 2.19.2
>>>>
>>>>
>>>
>>>
>> I pre




reply via email to

[Prev in Thread] Current Thread [Next in Thread]