[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects
From: |
Eli Zaretskii |
Subject: |
bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects |
Date: |
Fri, 29 May 2020 12:51:17 +0300 |
> From: Pip Cet <pipcet@gmail.com>
> Date: Fri, 22 May 2020 11:47:03 +0000
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 41321@debbugs.gnu.org
>
> If you could disassemble signal_before_change, we'd know whether
> start_marker and end_marker live in callee-saved registers, and thus
> whether this is likely to be Andrea's bug.
signal_before_change cannot be disassembled because it's inlined.
Diassemblying its caller, prepare_to_modify_buffer_1, seems to
indicate that start_marker and end_marker are pushed onto the stack
when they are returned by copy-marker, and taken from there when we
later call marker-position (which segfaults):
2163 PRESERVE_START_END;
0x010ed99e <+834>: mov 0x58(%esp),%eax
0x010ed9a2 <+838>: or 0x4c(%esp),%eax
0x010ed9a6 <+842>: je 0x10edd77 <prepare_to_modify_buffer_1+1819>
0x010ed9ac <+848>: mov 0x44(%esp),%ecx
0x010ed9b0 <+852>: or 0x38(%esp),%ecx
0x010ed9b4 <+856>: je 0x10edf90 <prepare_to_modify_buffer_1+2356>
0x010edd77 <+1819>: movl $0x0,0x8(%esp)
0x010edd7f <+1827>: movl $0x0,0xc(%esp)
0x010edd87 <+1835>: mov 0x50(%esp),%eax
0x010edd8b <+1839>: mov 0x54(%esp),%edx
0x010edd8f <+1843>: mov %eax,(%esp)
0x010edd92 <+1846>: mov %edx,0x4(%esp)
0x010edd96 <+1850>: call 0x10f15a5 <Fcopy_marker>
0x010edd9b <+1855>: mov %eax,0x4c(%esp) <<<<<<<<<<<<<<<<<<<<<
0x010edd9f <+1859>: mov %edx,0x58(%esp) <<<<<<<<<<<<<<<<<<<<<
0x010edda3 <+1863>: mov 0x44(%esp),%ecx
0x010edda7 <+1867>: or 0x38(%esp),%ecx
0x010eddab <+1871>: jne 0x10ede59 <prepare_to_modify_buffer_1+2045>
0x010eddb1 <+1877>: movl $0x0,0x8(%esp)
0x010eddb9 <+1885>: movl $0x0,0xc(%esp)
0x010eddc1 <+1893>: mov %esi,(%esp)
0x010eddc4 <+1896>: mov %edi,0x4(%esp)
0x010eddc8 <+1900>: call 0x10f15a5 <Fcopy_marker>
0x010eddcd <+1905>: mov %eax,0x38(%esp) <<<<<<<<<<<<<<<<<<<<
0x010eddd1 <+1909>: mov %edx,0x44(%esp) <<<<<<<<<<<<<<<<<<<<
0x010edf90 <+2356>: movl $0x0,0x8(%esp)
0x010edf98 <+2364>: movl $0x0,0xc(%esp)
0x010edfa0 <+2372>: mov %esi,(%esp)
0x010edfa3 <+2375>: mov %edi,0x4(%esp)
0x010edfa7 <+2379>: call 0x10f15a5 <Fcopy_marker>
0x010edfac <+2384>: mov %eax,0x38(%esp)
0x010edfb0 <+2388>: mov %edx,0x44(%esp)
[...]
2179 report_overlay_modification (FETCH_START, FETCH_END, 0,
0x010eda5f <+1027>: mov 0x44(%esp),%eax
0x010eda63 <+1031>: or 0x38(%esp),%eax
0x010eda67 <+1035>: jne 0x10edd20 <prepare_to_modify_buffer_1+1732>
0x010eda6d <+1041>: mov 0x58(%esp),%ecx
0x010eda71 <+1045>: or 0x4c(%esp),%ecx
0x010eda75 <+1049>: jne 0x10edf1e <prepare_to_modify_buffer_1+2242>
0x010eda7b <+1055>: mov %esi,0x68(%esp)
0x010eda7f <+1059>: mov %edi,0x6c(%esp)
0x010eda83 <+1063>: mov 0x50(%esp),%eax
0x010eda87 <+1067>: mov 0x54(%esp),%edx
0x010eda8b <+1071>: mov %eax,0x60(%esp)
0x010eda8f <+1075>: mov %edx,0x64(%esp)
0x010eda93 <+1079>: movl $0x0,0x24(%esp)
0x010eda9b <+1087>: movl $0x0,0x28(%esp)
0x010edaa3 <+1095>: mov 0x68(%esp),%eax
0x010edaa7 <+1099>: mov 0x6c(%esp),%edx
0x010edaab <+1103>: mov %eax,0x1c(%esp)
0x010edaaf <+1107>: mov %edx,0x20(%esp)
0x010edab3 <+1111>: mov 0x60(%esp),%eax
0x010edab7 <+1115>: mov 0x64(%esp),%edx
0x010edabb <+1119>: mov %eax,0x14(%esp)
0x010edabf <+1123>: mov %edx,0x18(%esp)
0x010edac3 <+1127>: movl $0x0,0x10(%esp)
0x010edacb <+1135>: mov %esi,0x8(%esp)
0x010edacf <+1139>: mov %edi,0xc(%esp)
0x010edad3 <+1143>: mov 0x50(%esp),%eax
0x010edad7 <+1147>: mov 0x54(%esp),%edx
0x010edadb <+1151>: mov %eax,(%esp)
0x010edade <+1154>: mov %edx,0x4(%esp)
0x010edae2 <+1158>: call 0x10e76ea <report_overlay_modification>
0x010edd20 <+1732>: mov 0x38(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edd24 <+1736>: mov %eax,(%esp)
0x010edd27 <+1739>: mov 0x44(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edd2b <+1743>: mov %eax,0x4(%esp)
0x010edd2f <+1747>: call 0x10f072a <Fmarker_position>
0x010edd34 <+1752>: mov %eax,0x68(%esp)
0x010edd38 <+1756>: mov %edx,0x6c(%esp)
0x010edd3c <+1760>: mov 0x58(%esp),%eax
0x010edd40 <+1764>: or 0x4c(%esp),%eax
0x010edd44 <+1768>: jne 0x10edeba <prepare_to_modify_buffer_1+2142>
0x010edd4a <+1774>: mov 0x38(%esp),%eax <<<<<<<<<<<<<<<<<<<<<
0x010edd4e <+1778>: mov %eax,(%esp)
0x010edd51 <+1781>: mov 0x44(%esp),%eax <<<<<<<<<<<<<<<<<<<<<
0x010edd55 <+1785>: mov %eax,0x4(%esp)
0x010edd59 <+1789>: call 0x10f072a <Fmarker_position>
0x010edd5e <+1794>: mov %eax,%esi
0x010edd60 <+1796>: mov %edx,%edi
0x010edd62 <+1798>: mov 0x50(%esp),%eax
0x010edd66 <+1802>: mov 0x54(%esp),%edx
0x010edd6a <+1806>: mov %eax,0x60(%esp)
0x010edd6e <+1810>: mov %edx,0x64(%esp)
0x010edd72 <+1814>: jmp 0x10eda93 <prepare_to_modify_buffer_1+1079>
0x010edeba <+2142>: mov 0x4c(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edebe <+2146>: mov %eax,(%esp)
0x010edec1 <+2149>: mov 0x58(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edec5 <+2153>: mov %eax,0x4(%esp)
0x010edec9 <+2157>: call 0x10f072a <Fmarker_position>
0x010edece <+2162>: mov %eax,0x60(%esp)
0x010eded2 <+2166>: mov %edx,0x64(%esp)
0x010eded6 <+2170>: mov 0x38(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010ededa <+2174>: mov %eax,(%esp)
0x010ededd <+2177>: mov 0x44(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edee1 <+2181>: mov %eax,0x4(%esp)
0x010edee5 <+2185>: call 0x10f072a <Fmarker_position>
0x010edeea <+2190>: mov %eax,%esi
0x010edeec <+2192>: mov %edx,%edi
0x010edeee <+2194>: mov 0x4c(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edef2 <+2198>: mov %eax,(%esp)
0x010edef5 <+2201>: mov 0x58(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edef9 <+2205>: mov %eax,0x4(%esp)
0x010edefd <+2209>: call 0x10f072a <Fmarker_position>
0x010edf02 <+2214>: mov %eax,0x50(%esp)
0x010edf06 <+2218>: mov %edx,0x54(%esp)
0x010edf0a <+2222>: jmp 0x10eda93 <prepare_to_modify_buffer_1+1079>
0x010edf1e <+2242>: mov 0x4c(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edf22 <+2246>: mov %eax,(%esp)
0x010edf25 <+2249>: mov 0x58(%esp),%eax <<<<<<<<<<<<<<<<<<<<<<
0x010edf29 <+2253>: mov %eax,0x4(%esp)
0x010edf2d <+2257>: call 0x10f072a <Fmarker_position>
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, (continued)
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/22
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/22
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Andrea Corallo, 2020/05/22
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/22
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/23
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Andrea Corallo, 2020/05/23
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Stefan Monnier, 2020/05/23
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/23
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Stefan Monnier, 2020/05/23
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/22
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects,
Eli Zaretskii <=
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/29
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/23
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/24
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/24
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/24
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/24
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/24
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/24
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Pip Cet, 2020/05/24
- bug#41321: 27.0.91; Emacs aborts due to invalid pseudovector objects, Eli Zaretskii, 2020/05/24