質問
数値シミュレーションのようなことをやっていて結果をGLUTで表示しようとしたのですが、
実装し始めたところSegmentation faultが出て動かなくなってしまいました。
デバッガはコードでない部分を指していてどこで止まったのかわからないです。
探ってみたところGLUTの処理には直接関わらない部分のstd::thread初期化で
失敗するとわかったのですが、自分で調べても解決できなかったので質問をさせていただきます。
ソースコードなど
元のソースコードは600行あるので現象が確認できた最小のソースコードを載せます。
c++
1#include <thread> 2#include <GL/glut.h> 3 4void hoge() { 5 /* この下の一行をコメントアウトするかどうかで動いたり動かなかったりします 6 * どうしてこんな変な挙動をするのか全く見当もつきません... 7 */ 8 std::thread piyo([&] {}); 9} 10 11void display() { 12 glClear(GL_COLOR_BUFFER_BIT); 13 glBegin(GL_POLYGON); 14 glVertex3f(0.5, 0.0, 0.5); 15 glVertex3f(0.5, 0.0, 0.0); 16 glVertex3f(0.0, 0.5, 0.0); 17 glVertex3f(0.0, 0.0, 0.5); 18 glEnd(); 19 glFlush(); 20} 21 22int main(int argc, char **argv) { 23 glutInit(&argc, argv); 24 glutInitDisplayMode(GLUT_SINGLE); 25 glutInitWindowSize(400, 300); 26 glutInitWindowPosition(100, 100); 27 glutCreateWindow("Hello world!"); 28 glutDisplayFunc(display); 29 glutMainLoop(); 30 return 0; 31} 32
以下、CLionのCMakeLists.txtです
cmake_minimum_required(VERSION 3.10) project(test) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_FLAGS "-pthread") add_executable(test main.cpp) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) include_directories( ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) target_link_libraries(test ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} )
以下、失敗した際のエラーメッセージです
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
補足情報
- CLion 2018.1
- elementary OS 0.3.2 Freya (64-bit)
- Intel® Core™ i7-4700MQ CPU @ 2.40GHz × 8
- Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
NVIDIA Corporation GK106M [GeForce GTX 765M] (rev a1) - 以下、nvidia-smiの結果です
グラボ関係で以前散々困らされたので確証はないのですが少し疑っています。
Thu Sep 12 04:46:47 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 384.183 Driver Version: 384.183 CUDA Version: 9.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 765M Off | 00000000:01:00.0 N/A | N/A | | N/A 63C P0 N/A / N/A | 427MiB / 2001MiB | N/A Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 Not Supported | +-----------------------------------------------------------------------------+
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/12 02:52