emacs-devel
[Top][All Lists]
Advanced

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

Re: MPS: Forwording symbols


From: Gerd Möllmann
Subject: Re: MPS: Forwording symbols
Date: Tue, 18 Jun 2024 20:23:37 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> Cc: eller.helmut@gmail.com,  emacs-devel@gnu.org
>> Date: Tue, 18 Jun 2024 20:11:16 +0200
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> IOW, the call to igc_postmortem itself hits assertion violation.
>> >
>> > Btw, the "unreachable" code in this case is this:
>> >
>> >   void ProtSet(Addr base, Addr limit, AccessSet mode)
>> >   {
>> >     DWORD newProtect;
>> >     DWORD oldProtect;
>> >
>> >     AVER(base < limit);
>> >     AVER(base != 0);
>> >     AVERT(AccessSet, mode);
>> >
>> >     newProtect = PAGE_EXECUTE_READWRITE;
>> >     if((mode & AccessWRITE) != 0)
>> >       newProtect = PAGE_EXECUTE_READ;
>> >     if((mode & AccessREAD) != 0)
>> >       newProtect = PAGE_NOACCESS;
>> >
>> >     if(VirtualProtect((LPVOID)base, (SIZE_T)AddrOffset(base, limit),
>> >                  newProtect, &oldProtect) == 0)
>> >       NOTREACHED; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>> >   }
>> >
>> > It means that VirtualProtect failed.  Since 'mode' is zero, it means
>> > the function was called to remove protection from the mmemory block,
>> > and it failed, probably because the specified memory region was out of
>> > the program's address space?
>> 
>> FWIW, I don't think one can usefully continue execution after calling
>> igc_postmorten, one can only look around in memory and such. Here's what
>> the docs say:
>
> Maybe I'm misunderstanding something, but the above is not an attempt
> to continue execution, it is part of the call to igc_postmortem
> itself.  That call is the one which crashes, not the code that runs
> after that call returns.

Sorry, then I interpreted this wrong:

>   (gdb) call igc_postmortem()
> 
>   Thread 5 received signal SIGTRAP, Trace/breakpoint trap.
>   [Switching to Thread 60368.0xb908]
>   0x77c79031 in ntdll!DbgBreakPoint () from C:\WINDOWS\SysWOW64\ntdll.dll
>   The program received a signal in another thread while
>   making a function call from GDB.
>   Evaluation of the expression containing the function
>   (igc_postmortem) will be abandoned.
>   When the function is done executing, GDB will silently stop.
>   (gdb) c
>   Continuing.

Too long no GDB for me :-)



reply via email to

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