thezbyg / gpick

Advanced color picker written in C++ using GTK+ toolkit
BSD 3-Clause "New" or "Revised" License
381 stars 34 forks source link

Segmentation fault #177

Closed eaam21 closed 2 years ago

eaam21 commented 4 years ago

Hi there, I have been building the current devel version of gpick with scons and cmake but when I try to launch via terminal the output is: "Segmentation fault"

Dependencies:

libcairo2: 1.16.0 libglib2.0: 2.62.5 libdbus-glib-1-dev: 0.110-5 libgtk-3-dev: 3.24.14 liblua5.2-dev: 5.2.4 libboost-dev: 1.67.0.2 libexpat1-dev: 2.2.9 lemon: 3.31.1 flex: 2.6.4 ragel: 6.10 gettext: 0.19.8.1 libboost-test-dev: 1.67.0.2 libboost-system-dev: 1.67.0.2 libboost-filesystem-dev: 1.67.0.2 g++: 9.2.1 scons: 3.1.2 cmake: 3.15.4

gdb output:

GNU gdb (Debian 8.3.1-1) 8.3.1 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/.

For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from gpick... (gdb) run Starting program: /home/guest/devel/gpick/manual/gpick/build/gpick [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff4d51700 (LWP 6454)] [New Thread 0x7fffeffff700 (LWP 6455)] [New Thread 0x7fffef7fe700 (LWP 6456)]

Thread 1 "gpick" received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) where

0 0x0000000000000000 in ()

1 0x000055555565df11 in std::function<int (lua::Script&)>::operator()(lua::Script&) const (this=0x7fffffffdab0, __args#0=...)

at /usr/include/c++/9/bits/std_function.h:688

2 0x000055555565dac9 in lua::registerLuaPackage(lua_State*) (L=0x5555558c6360) at /home/guest/devel/gpick/manual/gpick/source/lua/Script.cpp:109

3 0x00007ffff7278f2e in () at /usr/lib/x86_64-linux-gnu/liblua5.2.so.0

4 0x00007ffff72792a2 in () at /usr/lib/x86_64-linux-gnu/liblua5.2.so.0

5 0x00007ffff72753bb in lua_callk () at /usr/lib/x86_64-linux-gnu/liblua5.2.so.0

6 0x00007ffff7287c59 in luaL_requiref () at /usr/lib/x86_64-linux-gnu/liblua5.2.so.0

7 0x000055555565dbf3 in lua::Script::registerExtension(char const*, std::function<int (lua::Script&)>)

(this=0x7fffffffdab0, name=0x5555556ab01e "color", extension=...) at /home/guest/devel/gpick/manual/gpick/source/lua/Script.cpp:121

8 0x000055555565bde3 in lua::registerAll(lua_State*, GlobalState&) (L=0x5555558c6360, global_state=...)

at /home/guest/devel/gpick/manual/gpick/source/lua/Extensions.cpp:88

9 0x0000555555624f25 in GlobalState::Impl::initializeLua() (this=0x555555762e80) at /home/guest/devel/gpick/manual/gpick/source/GlobalState.cpp:208

10 0x000055555562573d in GlobalState::Impl::loadAll() (this=0x555555762e80) at /home/guest/devel/gpick/manual/gpick/source/GlobalState.cpp:314

11 0x00005555556241c2 in GlobalState::loadAll() (this=0x55555589bbb0) at /home/guest/devel/gpick/manual/gpick/source/GlobalState.cpp:334

12 0x0000555555672947 in app_initialize_variables(AppArgs*) (args=0x5555557c3400) at /home/guest/devel/gpick/manual/gpick/source/uiApp.cpp:1627

13 0x00005555556730ab in app_create_main(AppOptions const&, int&) (options=..., return_value=@0x7fffffffdeec: 0)

at /home/guest/devel/gpick/manual/gpick/source/uiApp.cpp:1723

14 0x000055555565e376 in main(int, char**) (argc=1, argv=0x7fffffffe118) at /home/guest/devel/gpick/manual/gpick/source/main.cpp:95

(gdb) list 41 { 42 {"geometry", 'g', 0, G_OPTION_ARG_STRING, &commandline_geometry, "Window geometry", "GEOMETRY"}, 43 {"pick", 'p', 0, G_OPTION_ARG_NONE, &pick_color, "Pick a color", nullptr}, 44 {"single", 's', 0, G_OPTION_ARG_NONE, &single_color_pick_mode, "Pick one color and exit", nullptr}, 45 {"output", 'o', 0, G_OPTION_ARG_NONE, &output_picked_color, "Output picked color", nullptr}, 46 {"no-newline", 0, 0, G_OPTION_ARG_NONE, &output_without_newline, "Output picked color without newline", nullptr}, 47 {"no-start", 0, 0, G_OPTION_ARG_NONE, &do_not_start, "Do not start Gpick if it is not already running", nullptr}, 48 {"converter-name", 'c', 0, G_OPTION_ARG_STRING, &converter_name, "Converter name used for floating picker mode", nullptr}, 49 {"version", 'v', 0, G_OPTION_ARG_NONE, &version_information, "Print version information", nullptr}, 50 {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &commandline_filename, nullptr, "[FILE...]"}, (gdb) k

if you need more information please let me know. Also, if you know what can I do to fix this. Thanks Elías

thezbyg commented 4 years ago

Hi, Lua extension registration code was incorrect for Lua 5.2. Should be fixed now. Thank you for detailed issue report.