___chkstk_ms Ошибка в gfortran: Ошибка сегментации, невозможно получить доступ к памяти по адресу Ошибка - PullRequest
0 голосов
/ 06 июля 2019

Я использую Cygwin (версия: CYGWIN_NT-10.0 DESKTOP - *** 3.0.7 (0.338 / 5/3) в Windows10) и GCC (7.4.0) в четырехъядерном ноутбуке x64 (intel).Когда я компилировал программу на Фортране с OpenMP, она выдает следующую ошибку с помощью gdb analyzer:


Thread 1 "siesta" received signal SIGSEGV, Segmentation fault.
___chkstk_ms () at
/usr/src/debug/gcc-7.4.0-1/libgcc/config/i386/cygwin.S:146
146             orq     $0x0, (%rcx)            /* probe there */
(gdb) where
#0  ___chkstk_ms () at
/usr/src/debug/gcc-7.4.0-1/libgcc/config/i386/cygwin.S:146
#1  0x000000010071b29f in ldau_specs::ldau_proj_gen (isp=<error reading
variable: Cannot access memory at address 0xffc78f78>)
    at /home/gpkmo/siesta-4.1-b4/Src/ldau_specs.f:649
#2  0x00000001004f582e in initatom (ns=3) at
/home/gpkmo/siesta-4.1-b4/Src/initatom.f:151
#3  0x000000010060c684 in m_siesta_init::siesta_init () at
/home/gpkmo/siesta-4.1-b4/Src/siesta_init.F:379
#4  0x00000001010d359d in siesta () at
/home/gpkmo/siesta-4.1-b4/Src/siesta.F:53
#5  0x00000001010d3669 in main (argc=2, argv=0x60004a790) at
/home/gpkmo/siesta-4.1-b4/Src/siesta.F:10
#6  0x000000018004a816 in _cygwin_exit_return () at
/usr/src/debug/cygwin-3.0.7-1/winsup/cygwin/dcrt0.cc:1022
#7  0x0000000180048353 in _cygtls::call2 (this=0xffffce00, func=0x1800497f0
<dll_crt0_1(void*)>, arg=0x0, buf=buf@entry=0xffffcdf0)
    at /usr/src/debug/cygwin-3.0.7-1/winsup/cygwin/cygtls.cc:40
#8  0x0000000180048404 in _cygtls::call (func=<optimized out>,
arg=<optimized out>) at
/usr/src/debug/cygwin-3.0.7-1/winsup/cygwin/cygtls.cc:27
#9  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
==============================================================================

Кто-нибудь знает, как произошла эта ошибка?

Возможно ли это из-за конфликтов версий (с GCC с libgomp и т. Д.)?Или мне нужно самому перекомпилировать libgomp?(поскольку серийная версия программы работает нормально)

Я уже пытался (1) увеличить размер стека с помощью команды ulimit (2) gfortran -Wl, - stack, 4194304 и т. д. Но это не помогло.

Ссылка на источник здесь: https://drive.google.com/file/d/1uRrWJ2FAfVdJF-zIreUDZCknziZbCFV5/view?usp=sharing

...