all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andy Moreton <andrewjmoreton@gmail.com>
To: emacs-devel@gnu.org
Subject: Re: bignum branch
Date: Sun, 12 Aug 2018 20:44:03 +0100	[thread overview]
Message-ID: <86ftzjs73w.fsf@gmail.com> (raw)
In-Reply-To: 83y3dbju00.fsf@gnu.org

On Sun 12 Aug 2018, Eli Zaretskii wrote:

>> From: Andy Moreton <andrewjmoreton@gmail.com>
>> Date: Sat, 11 Aug 2018 23:15:28 +0100
>> 
>> As Tom has completed merging to master, I have switched to the master
>> branch and rebuilt from a clean tree (after "git clean -Xdf").
>> 
>> Stepping through the code in gdb, I see:
>> 
>> (gdb) stepi
>> 0x000000040016ebcb      1845        __gmp_result =  mpn_popcount (__gmp_u->_mp_d, __gmp_usize);
>> (gdb)
>> 0x000000046ace5dc0 in ?? ()
>> (gdb)
>> 
>> Thread 1 received signal SIGSEGV, Segmentation fault.
>> 0x000000046ace5dc0 in ?? ()
>
> I don't see this here, with mingw.org's GMP library.
>
> If you step through the code after typing
>
>   (gdb) set debugexceptions on
>
> what Windows exception is reported that leads to this SIGSEGV?

(gdb) n
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x40016c2ee
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x4000e9446
gdb: Target exception EXCEPTION_BREAKPOINT at 0x40016c2f3
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x40016c2f6
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x40016c2f8
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x40016c2fa
3335            return make_fixnum (mpz_popcount (XBIGNUM (value)->value));
(gdb) s
__gmpz_popcount (__gmp_u=0x400c0a768 <dumped_data+4928520>) at C:/msys64/mingw64/include/gmp.h:1844
1844      if (__GMP_LIKELY (__gmp_usize > 0))
(gdb)
[New Thread 836.0x888]
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x40016c300
1845        __gmp_result =  mpn_popcount (__gmp_u->_mp_d, __gmp_usize);
(gdb)
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x40016c304
gdb: Target exception EXCEPTION_SINGLE_STEP at 0x46ace5dc0
0x000000046ace5dc0 in ?? ()
(gdb)
Cannot find bounds of current function
(gdb) stepi
gdb: Target exception EXCEPTION_ACCESS_VIOLATION at 0x46ace5dc0

Thread 1 received signal SIGSEGV, Segmentation fault.
0x000000046ace5dc0 in ?? ()
(gdb)

> Also, could you try compiling and running the small program attached
> below.  It is a slightly modified code of Flogcount, and I'm curious
> to know whether it crashes in the same way if you compile it like the
> crashing Emacs: with the -Og switch and with gmp.h set up for static
> linking.  (It didn't crash for me here.)  Also, do you see there the
> same call to __imp___gmpn_popcount as in the Emacs case.

I don't see a crash. Your program only accepts non-negative numbers that
are small enough to use only a single limb, so may not be representative
as a cut down test case.

I saved the code in foo.c and built with "gcc -Og -o foo.exe foo.c -lgmp".
Dumping in gdb, I see the same call to __imp___gmpn_popcount:

(gdb) disas main
Dump of assembler code for function main:
   0x0000000000401560 <+0>:     push   %rsi
   0x0000000000401561 <+1>:     push   %rbx
   0x0000000000401562 <+2>:     sub    $0x48,%rsp
   0x0000000000401566 <+6>:     mov    %ecx,%ebx
   0x0000000000401568 <+8>:     mov    %rdx,%rsi
   0x000000000040156b <+11>:    callq  0x4016f0 <__main>
   0x0000000000401570 <+16>:    cmp    $0x1,%ebx
   0x0000000000401573 <+19>:    jg     0x4015b4 <main+84>
   0x0000000000401575 <+21>:    mov    $0x2a,%esi
   0x000000000040157a <+26>:    lea    0x30(%rsp),%rbx
   0x000000000040157f <+31>:    mov    %rbx,%rcx
   0x0000000000401582 <+34>:    callq  0x401640 <__gmpz_init>
   0x0000000000401587 <+39>:    mov    %esi,%r8d
   0x000000000040158a <+42>:    mov    %rbx,%rdx
   0x000000000040158d <+45>:    mov    %rbx,%rcx
   0x0000000000401590 <+48>:    callq  0x401650 <__gmpz_add_ui>
   0x0000000000401595 <+53>:    mov    0x34(%rsp),%edx
   0x0000000000401599 <+57>:    test   %edx,%edx
   0x000000000040159b <+59>:    js     0x4015c8 <main+104>
   0x000000000040159d <+61>:    jle    0x4015c1 <main+97>
   0x000000000040159f <+63>:    mov    0x38(%rsp),%rcx
   0x00000000004015a4 <+68>:    callq  0x408220 <__imp___gmpn_popcount>
   0x00000000004015a9 <+73>:    mov    %eax,%ebx
   0x00000000004015ab <+75>:    mov    %ebx,%eax
   0x00000000004015ad <+77>:    add    $0x48,%rsp
   0x00000000004015b1 <+81>:    pop    %rbx
   0x00000000004015b2 <+82>:    pop    %rsi
   0x00000000004015b3 <+83>:    retq
   0x00000000004015b4 <+84>:    mov    0x8(%rsi),%rcx
   0x00000000004015b8 <+88>:    callq  0x402c68 <atoi>
   0x00000000004015bd <+93>:    mov    %eax,%esi
   0x00000000004015bf <+95>:    jmp    0x40157a <main+26>
   0x00000000004015c1 <+97>:    mov    $0x0,%eax
   0x00000000004015c6 <+102>:   jmp    0x4015a9 <main+73>
   0x00000000004015c8 <+104>:   lea    0x20(%rsp),%rbx
   0x00000000004015cd <+109>:   mov    %rbx,%rcx
   0x00000000004015d0 <+112>:   callq  0x401640 <__gmpz_init>
   0x00000000004015d5 <+117>:   lea    0x30(%rsp),%rdx
   0x00000000004015da <+122>:   mov    %rbx,%rcx
   0x00000000004015dd <+125>:   callq  0x401638 <__gmpz_set>
   0x00000000004015e2 <+130>:   mov    0x24(%rsp),%eax
   0x00000000004015e6 <+134>:   neg    %eax
   0x00000000004015e8 <+136>:   mov    %eax,0x24(%rsp)
   0x00000000004015ec <+140>:   mov    $0x1,%r8d
   0x00000000004015f2 <+146>:   mov    %rbx,%rdx
   0x00000000004015f5 <+149>:   mov    %rbx,%rcx
   0x00000000004015f8 <+152>:   callq  0x401630 <__gmpz_sub_ui>
   0x00000000004015fd <+157>:   mov    0x24(%rsp),%edx
   0x0000000000401601 <+161>:   test   %edx,%edx
   0x0000000000401603 <+163>:   js     0x401626 <main+198>
   0x0000000000401605 <+165>:   mov    $0x0,%eax
   0x000000000040160a <+170>:   test   %edx,%edx
   0x000000000040160c <+172>:   jle    0x401618 <main+184>
   0x000000000040160e <+174>:   mov    0x28(%rsp),%rcx
   0x0000000000401613 <+179>:   callq  0x408220 <__imp___gmpn_popcount>
   0x0000000000401618 <+184>:   mov    %eax,%ebx
   0x000000000040161a <+186>:   lea    0x20(%rsp),%rcx
   0x000000000040161f <+191>:   callq  0x401648 <__gmpz_clear>
   0x0000000000401624 <+196>:   jmp    0x4015ab <main+75>
   0x0000000000401626 <+198>:   mov    $0xffffffff,%eax
   0x000000000040162b <+203>:   jmp    0x40160a <main+170>
   0x000000000040162d <+205>:   nop
   0x000000000040162e <+206>:   nop
   0x000000000040162f <+207>:   nop
End of assembler dump.
(gdb)




  reply	other threads:[~2018-08-12 19:44 UTC|newest]

Thread overview: 205+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-13  4:26 bignum branch Tom Tromey
2018-07-13  7:38 ` Eli Zaretskii
2018-07-13  8:45 ` Robert Pluim
2018-07-13  9:51   ` Robert Pluim
2018-07-13 11:59     ` Eli Zaretskii
2018-07-13 13:31       ` Robert Pluim
2018-07-13 18:06         ` Tom Tromey
2018-07-13 12:04     ` Eli Zaretskii
2018-07-13 12:14       ` Eli Zaretskii
2018-07-13 13:02         ` Robert Pluim
2018-07-13 13:50           ` Eli Zaretskii
2018-07-15 16:29             ` Andy Moreton
2018-07-17 18:10               ` Robert Pluim
2018-07-17 18:24                 ` Eli Zaretskii
2018-07-17 19:06                   ` Eli Zaretskii
2018-07-17 20:00                   ` Robert Pluim
2018-07-17 21:17                     ` Clément Pit-Claudel
2018-07-18  1:01                       ` Stefan Monnier
2018-07-18  9:28                 ` Andy Moreton
2018-07-18 13:21                   ` Robert Pluim
2018-07-18 13:32                     ` Stefan Monnier
2018-07-18 16:01                     ` Eli Zaretskii
2018-07-18 16:21                       ` Robert Pluim
2018-07-18 16:47                         ` Eli Zaretskii
2018-07-13 12:34       ` Robert Pluim
2018-07-13 14:28 ` Andy Moreton
2018-07-13 14:42   ` Eli Zaretskii
2018-07-13 14:53     ` Andy Moreton
2018-07-13 15:03       ` Eli Zaretskii
2018-07-13 15:30   ` Andy Moreton
2018-07-13 19:35     ` Andy Moreton
2018-07-14 16:20       ` Eli Zaretskii
2018-07-14 20:04         ` Andy Moreton
2018-07-15 13:46           ` Tom Tromey
2018-07-15 15:01             ` Eli Zaretskii
2018-07-16 12:19               ` Stefan Monnier
2018-07-16 14:40                 ` Eli Zaretskii
2018-07-16 16:09                   ` Stefan Monnier
2018-07-16 18:06                     ` Eli Zaretskii
2018-07-16 18:32                       ` Stefan Monnier
2018-07-16 18:42                         ` Eli Zaretskii
2018-07-16 14:35             ` Tom Tromey
2018-07-16 22:28               ` Andy Moreton
2018-07-21 15:35                 ` Andy Moreton
2018-07-22 16:43                   ` Tom Tromey
2018-07-22 17:41                     ` Andy Moreton
2018-08-03  0:43                       ` Andy Moreton
2018-08-03  6:23                         ` Eli Zaretskii
2018-08-03  9:01                           ` Andy Moreton
2018-08-03  9:47                             ` Eli Zaretskii
2018-08-03 10:07                               ` Andy Moreton
2018-08-03 13:16                                 ` Eli Zaretskii
2018-08-03 14:05                                   ` Andy Moreton
2018-08-03 17:44                                     ` Eli Zaretskii
2018-08-03 19:54                                       ` Andy Moreton
2018-08-04  6:11                                         ` Eli Zaretskii
2018-08-04 11:14                                           ` Andy Moreton
2018-08-04 11:29                                             ` Eli Zaretskii
2018-08-03 20:17                                       ` Tom Tromey
2018-08-03 21:02                                         ` Paul Eggert
2018-08-03 21:19                                           ` Tom Tromey
2018-08-04  1:22                                             ` Paul Eggert
2018-08-04  6:18                                               ` Eli Zaretskii
2018-08-04 10:49                                                 ` Achim Gratz
2018-08-04 11:07                                                   ` Eli Zaretskii
2018-08-04 10:43                                             ` Achim Gratz
2018-08-04 16:33                                               ` Tom Tromey
2018-08-04 18:28                                                 ` Achim Gratz
2018-08-04  6:20                                           ` Eli Zaretskii
2018-08-04 11:17                                         ` Andy Moreton
2018-08-04 16:41                                           ` Tom Tromey
2018-08-06 10:18                                             ` Robert Pluim
2018-08-07  0:36                                           ` Tom Tromey
2018-08-07  8:38                                             ` Andy Moreton
2018-08-08  0:25                                               ` Tom Tromey
2018-08-04 17:10                                         ` Tom Tromey
2018-08-03 17:30                           ` Tom Tromey
2018-08-03 19:16                             ` Andy Moreton
2018-08-04  6:07                               ` Eli Zaretskii
2018-08-05 11:36                                 ` Andy Moreton
2018-08-05 15:18                                   ` Eli Zaretskii
2018-08-06 18:12                                     ` Andy Moreton
2018-08-07  0:41                                       ` Tom Tromey
2018-08-07  2:03                                         ` Paul Eggert
2018-08-07  3:59                                           ` Tom Tromey
2018-08-07  4:02                                             ` Tom Tromey
2018-08-07 11:22                                             ` Andy Moreton
2018-08-07 16:53                                             ` Paul Eggert
2018-08-07 17:12                                               ` Eli Zaretskii
2018-08-07 17:52                                                 ` Paul Eggert
2018-08-08  0:23                                                   ` Tom Tromey
2018-08-07 11:17                                         ` Andy Moreton
2018-08-08  0:26                                           ` Tom Tromey
2018-08-08 14:24                                             ` Andy Moreton
2018-08-08 16:35                                         ` Andy Moreton
2018-08-08 23:14                                           ` Tom Tromey
2018-08-09  2:33                                             ` Eli Zaretskii
2018-08-09  7:59                                               ` Michael Albinus
2018-08-09 13:01                                                 ` Eli Zaretskii
2018-08-09 17:31                                                   ` Paul Eggert
2018-08-09 18:32                                                     ` Eli Zaretskii
2018-08-09 19:22                                                     ` Stefan Monnier
2018-08-09 16:34                                               ` Tom Tromey
2018-08-09 18:28                                                 ` Eli Zaretskii
2018-08-09 19:30                                                 ` Tom Tromey
2018-08-08 23:37                                           ` Tom Tromey
2018-08-09  0:07                                             ` Andy Moreton
2018-08-09  2:03                                               ` Tom Tromey
2018-08-09  9:19                                                 ` Andy Moreton
2018-08-09 20:49                                                 ` Andy Moreton
2018-08-10  5:45                                                   ` Eli Zaretskii
2018-08-10  7:43                                                     ` Andy Moreton
2018-08-10  7:59                                                       ` Paul Eggert
2018-08-10  9:48                                                         ` Eli Zaretskii
2018-08-10 20:58                                                           ` Paul Eggert
2018-08-11  7:08                                                             ` Eli Zaretskii
2018-08-11  8:02                                                               ` Paul Eggert
2018-08-11 10:50                                                                 ` Eli Zaretskii
2018-08-11 12:57                                                                   ` Stefan Monnier
2018-08-11 19:38                                                                   ` Paul Eggert
2018-08-10 11:18                                                         ` Andy Moreton
2018-08-10 11:56                                                           ` Andreas Schwab
2018-08-10 12:25                                                             ` Eli Zaretskii
2018-08-10 12:27                                                             ` Andy Moreton
2018-08-10 18:37                                                               ` Achim Gratz
2018-08-10 12:26                                                           ` Eli Zaretskii
2018-08-10 12:46                                                             ` Andy Moreton
2018-08-10  9:46                                                       ` Eli Zaretskii
2018-08-10 11:39                                                         ` Andy Moreton
2018-08-10 12:33                                                           ` Eli Zaretskii
2018-08-10 14:05                                                             ` Andy Moreton
2018-08-10 19:57                                                               ` Eli Zaretskii
2018-08-11 15:21                                                                 ` Andy Moreton
2018-08-11 15:25                                                                   ` Tom Tromey
2018-08-11 16:04                                                                     ` Eli Zaretskii
2018-08-11 16:16                                                                   ` Eli Zaretskii
2018-08-11 16:54                                                                     ` Andy Moreton
2018-08-11 17:34                                                                       ` Eli Zaretskii
2018-08-11 17:56                                                                         ` Andy Moreton
2018-08-11 18:10                                                                           ` Eli Zaretskii
2018-08-11 18:15                                                                             ` Andy Moreton
2018-08-11 19:08                                                                               ` Eli Zaretskii
2018-08-11 22:15                                                                                 ` Andy Moreton
2018-08-12 18:54                                                                                   ` Eli Zaretskii
2018-08-12 19:44                                                                                     ` Andy Moreton [this message]
2018-08-13 15:02                                                                                       ` Eli Zaretskii
2018-08-13 23:13                                                                                         ` Andy Moreton
2018-08-14 14:55                                                                                           ` Eli Zaretskii
2018-08-14 15:11                                                                                             ` Andy Moreton
2018-08-14 15:19                                                                                               ` Eli Zaretskii
2018-08-14 16:16                                                                                                 ` Andy Moreton
2018-08-15 17:01                                                                                                   ` Eli Zaretskii
2018-08-11 17:00                                                                     ` Andy Moreton
2018-08-10 15:25                                                             ` Stefan Monnier
2018-08-10 16:45                                                               ` Andy Moreton
2018-08-10 19:34                                                               ` Eli Zaretskii
2018-08-09  3:49                                               ` Stefan Monnier
2018-08-09  9:21                                                 ` Andy Moreton
2018-08-09  2:37                                             ` Eli Zaretskii
2018-08-03 20:13                         ` Tom Tromey
2018-08-04 16:39                         ` Tom Tromey
2018-08-04 17:24                           ` Tom Tromey
2018-08-05 10:46                           ` Andy Moreton
2018-08-05 18:59                             ` Tom Tromey
2018-08-06 18:17                               ` Andy Moreton
2018-07-15 15:00           ` Eli Zaretskii
2018-07-15 17:31             ` Paul Eggert
2018-07-15 18:27               ` Eli Zaretskii
2018-07-16 19:02                 ` Paul Eggert
2018-07-17  2:42                   ` Eli Zaretskii
2018-07-17 15:53                     ` Paul Eggert
2018-07-17 17:03                       ` Eli Zaretskii
2018-07-17 17:24                         ` Paul Eggert
2018-07-17 17:38                           ` Eli Zaretskii
2018-07-17 17:41                             ` Paul Eggert
2018-07-17 17:53                               ` Eli Zaretskii
2018-07-17 18:55                                 ` Paul Eggert
2018-07-17 19:04                                   ` Eli Zaretskii
2018-07-17 22:39                                     ` Paul Eggert
2018-07-18  2:41                                       ` Eli Zaretskii
2018-07-18  7:39                                         ` Paul Eggert
2018-07-18 11:14                                           ` Andy Moreton
2018-07-18 11:57                                             ` Paul Eggert
2018-07-18 13:09                                               ` Clément Pit-Claudel
2018-07-18 13:18                                                 ` Stefan Monnier
2018-07-18 13:43                                                   ` Clément Pit-Claudel
2018-07-18 14:06                                                     ` Andy Moreton
2018-07-18 19:25                                                       ` Achim Gratz
2018-07-18 20:41                                                         ` Stefan Monnier
2018-07-19  2:36                                                           ` Eli Zaretskii
2018-07-19 20:32                                                         ` Paul Eggert
2018-07-20 20:02                                                           ` Achim Gratz
2018-07-20 20:58                                                             ` Paul Eggert
2018-07-20 21:48                                                               ` Stefan Monnier
2018-07-22 19:49                                                               ` Achim Gratz
2018-07-18 18:29                                                 ` Paul Eggert
2018-07-18 11:10                                       ` Andy Moreton
2018-07-18 18:34                                         ` Paul Eggert
2018-07-25 21:02             ` Andy Moreton
2018-08-09 14:26 ` Charles A. Roelli
2018-08-09 15:17   ` Andy Moreton
2018-08-09 16:23     ` Charles A. Roelli
2018-08-09 16:25     ` Tom Tromey
2018-08-09 17:08       ` Andy Moreton
2018-08-09 19:29         ` Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86ftzjs73w.fsf@gmail.com \
    --to=andrewjmoreton@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.