|
|
Home » Community » U++ community news and announcements » ide: Assist parsing now parallel and some of it background
|
|
|
|
|
|
|
|
Re: ide: Assist parsing now parallel and some of it background [message #54327 is a reply to message #54323] |
Tue, 23 June 2020 14:29   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Tue, 23 June 2020 04:01Novo wrote on Mon, 22 June 2020 22:44This is interesting (after full rebuild):
:~/dvlp/cpp/code/upp/out/uppsrc/CLANGcpp17.Debug.Debug_Full.Gui.Shared$ ./ide
Heap is corrupted --memory-breakpoint__ 9209
Unrelated, but should be now fixed.
Thanks.
It prevented tests from running.
Ide on exit:
==1001757== Conditional jump or move depends on uninitialised value(s)
==1001757== at 0x5C9904: Upp::String0::IsEqual(Upp::String0 const&) const (Core/String.h:283)
==1001757== by 0x53D0F2: Upp::AString<Upp::String0>::IsEqual(Upp::String const&) const (Core/String.h:78)
==1001757== by 0x5143BF: Upp::operator==(Upp::String const&, Upp::String const&) (Core/String.h:151)
==1001757== by 0x5E5BD9: SaveChangedFile(char const*, Upp::String, bool) (Core.cpp:328)
==1001757== by 0x453D6B: Ide::SaveConfig() (Config.cpp:331)
==1001757== by 0x4541C1: Ide::SaveConfigOnTime() (Config.cpp:344)
==1001757== by 0x4D5694: GuiMainFn_() (main.cpp:317)
==1001757== by 0x8F5341: Upp::AppExecute__(void (*)()) (App.cpp:442)
==1001757== by 0x4D41FA: main (main.cpp:120)
Regards,
Novo
|
|
|
|
Re: ide: Assist parsing now parallel and some of it background [message #54329 is a reply to message #54325] |
Tue, 23 June 2020 15:24   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Tue, 23 June 2020 04:54
I am trying to decipher that, but so far it _looks_ like races in GTK. Or maybe false reports of races in GTK...
IMHO, it is very unlikely that GTK has races. Maybe, it just requires extra-synchronization ...
ThreadSanitizer can check only code, compiled with ThreadSanitizer. That means it cannot see any problems with GTK ...
Valgrind-based tools can. Helgrind, for example, reports tons of this:
==1004525== Possible data race during read of size 4 at 0x6C47A60 by thread #4
==1004525== Locks held: none
==1004525== at 0x5BD9D45: g_private_get (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5B895CF: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5B8C17C: g_main_current_source (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x59AF34E: g_task_new (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A18C71: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A18DAF: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A18E61: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5B8CE8D: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5B8D23F: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5B8D532: g_main_loop_run (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5A18E99: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5BB6930: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== Address 0x6c47a60 is 0 bytes inside a block of size 4 alloc'd
==1004525== at 0x483C893: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_helgrind-amd64-linux.so)
==1004525== by 0x5BD9743: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5BD9D63: g_private_get (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5B895CF: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5B8C17C: g_main_current_source (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x59AF34E: g_task_new (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A05E7A: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A09BEC: g_dbus_connection_send_message_with_reply (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A0A4DA: g_dbus_connection_send_message_with_reply_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A0A8DE: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A0C8C6: g_dbus_connection_call_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5A0CB65: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== Block was alloc'd by thread #1
==1004525==
==1004525== ----------------------------------------------------------------
==1004525==
==1004525== Lock at 0x14AD088 was first observed
==1004525== at 0x4843D9D: pthread_mutex_init (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_helgrind-amd64-linux.so)
==1004525== by 0x8DFF18: Upp::Mutex::Mutex() (Mt.cpp:601)
==1004525== by 0x6AB669: Upp::StaticPrimitive_<Upp::Mutex>::Initialize() (Mt.h:313)
==1004525== by 0x6AB5E4: Upp::StaticPrimitive_<Upp::Mutex>::Get() (Mt.h:316)
==1004525== by 0x6A7A67: Upp::StaticMutex::Enter() (Core/Mt.h:323)
==1004525== by 0xCBC9A0: Upp::EnterGuiMutex() (CtrlMt.cpp:15)
==1004525== by 0x678070: Upp::GuiLock::GuiLock() (CtrlCore/CtrlCore.h:66)
==1004525== by 0xCC4274: Upp::Ctrl::InstallKeyHook(bool (*)(Upp::Ctrl*, unsigned int, int)) (Ctrl.cpp:712)
==1004525== by 0x7807B2: Upp::s__sF29_328_fn() (MenuBar.cpp:330)
==1004525== by 0x518D75: Upp::Callinit::Callinit(void (*)(), char const*, int) (Core/Defs.h:86)
==1004525== by 0x410D2B: __cxx_global_var_init.120 (MenuBar.cpp:328)
==1004525== by 0x411700: _GLOBAL__sub_I_CtrlLib_blitz.cpp (CtrlLib$blitz.cpp:0)
==1004525== Address 0x14ad088 is 8 bytes inside data symbol "_ZN3UppL6sGLockE"
==1004525==
==1004525== Lock at 0x6C1AC70 was first observed
==1004525== at 0x4843D9D: pthread_mutex_init (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_helgrind-amd64-linux.so)
==1004525== by 0x5BD993D: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5BD9A17: g_rec_mutex_lock (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x597BAC6: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5965681: g_file_new_for_path (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x4EF9BCB: gtk_css_provider_load_from_path (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x4EF9F07: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x503A30A: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x503D944: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x7D5D80: Upp::GtkSettingsString(char const*) (ChGtk3.cpp:24)
==1004525== by 0x7D5E6E: Upp::SetupFont() (ChGtk3.cpp:35)
==1004525== by 0x7D283F: Upp::ChHostSkin() (ChGtk3.cpp:285)
==1004525== Address 0x6c1ac70 is 0 bytes inside a block of size 40 alloc'd
==1004525== at 0x483C893: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_helgrind-amd64-linux.so)
==1004525== by 0x5BD9910: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x5BD9A17: g_rec_mutex_lock (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.2)
==1004525== by 0x597BAC6: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x5965681: g_file_new_for_path (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.2)
==1004525== by 0x4EF9BCB: gtk_css_provider_load_from_path (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x4EF9F07: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x503A30A: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x503D944: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.14)
==1004525== by 0x7D5D80: Upp::GtkSettingsString(char const*) (ChGtk3.cpp:24)
==1004525== by 0x7D5E6E: Upp::SetupFont() (ChGtk3.cpp:35)
==1004525== by 0x7D283F: Upp::ChHostSkin() (ChGtk3.cpp:285)
==1004525== Block was alloc'd by thread #1
DRD, on other side, reports a lot of problems with GTK itself, but Upp (on startup).
The only Upp-related error I saw so far is this:
==1005305== Probably a race condition: condition variable 0x1484d88 has been signaled but the associated mutex 0x1484d60 is not locked by the signalling thread.
==1005305== at 0x48487EB: pthread_cond_broadcast@* (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_drd-amd64-linux.so)
==1005305== by 0x97DEF4: Upp::ConditionVariable::Broadcast() (Mt.h:265)
==1005305== by 0x94AD20: Upp::CoWork::Pool::ExitThreads() (CoWork.cpp:39)
==1005305== by 0x94B0FC: Upp::CoWork::Pool::~Pool() (CoWork.cpp:71)
==1005305== by 0x60AEA26: __run_exit_handlers (exit.c:108)
==1005305== by 0x60AEBDF: exit (exit.c:139)
==1005305== by 0x608C0B9: (below main) (libc-start.c:342)
==1005305== cond 0x1484d88 was first observed at:
==1005305== at 0x4846F6B: pthread_cond_init@* (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_drd-amd64-linux.so)
==1005305== by 0x97E0B8: Upp::ConditionVariable::ConditionVariable() (Mt.h:267)
==1005305== by 0x94AEDB: Upp::CoWork::Pool::Pool() (CoWork.cpp:54)
==1005305== by 0x94AAA7: Upp::CoWork::GetPool() (CoWork.cpp:17)
==1005305== by 0x94BBE8: Upp::CoWork::Finish() (CoWork.cpp:287)
==1005305== by 0xC2F2AD: Upp::BufferPainter::FinishFillJob() (BufferPainter.h:296)
==1005305== by 0xC109C4: Upp::BufferPainter::Finish() (Render.cpp:450)
==1005305== by 0x7FFD80: Upp::ImagePainter::GetResult() (Painter/Painter.h:376)
==1005305== by 0x7F2012: Upp::ImagePainter::operator Upp::Image() (Painter/Painter.h:377)
==1005305== by 0x7CBD0D: Upp::MakeElement(Upp::Size_<int>, double, Upp::Image const&, double, Upp::Color, Upp::Function<void (Upp::Painter&, Upp::Rect_<double> const&)>) (Ch.cpp:281)
==1005305== by 0x7CBFB7: Upp::MakeButton(int, Upp::Image const&, double, Upp::Color, unsigned int) (Ch.cpp:290)
==1005305== by 0x7C8391: Upp::MakeButton(int, Upp::Color, double, Upp::Color, unsigned int) (Ch.cpp:297)
==1005305== mutex 0x1484d60 was first observed at:
==1005305== at 0x4844C36: pthread_mutex_init (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_drd-amd64-linux.so)
==1005305== by 0x8DFF18: Upp::Mutex::Mutex() (Mt.cpp:601)
==1005305== by 0x94AEC0: Upp::CoWork::Pool::Pool() (CoWork.cpp:54)
==1005305== by 0x94AAA7: Upp::CoWork::GetPool() (CoWork.cpp:17)
==1005305== by 0x94BBE8: Upp::CoWork::Finish() (CoWork.cpp:287)
==1005305== by 0xC2F2AD: Upp::BufferPainter::FinishFillJob() (BufferPainter.h:296)
==1005305== by 0xC109C4: Upp::BufferPainter::Finish() (Render.cpp:450)
==1005305== by 0x7FFD80: Upp::ImagePainter::GetResult() (Painter/Painter.h:376)
==1005305== by 0x7F2012: Upp::ImagePainter::operator Upp::Image() (Painter/Painter.h:377)
==1005305== by 0x7CBD0D: Upp::MakeElement(Upp::Size_<int>, double, Upp::Image const&, double, Upp::Color, Upp::Function<void (Upp::Painter&, Upp::Rect_<double> const&)>) (Ch.cpp:281)
==1005305== by 0x7CBFB7: Upp::MakeButton(int, Upp::Image const&, double, Upp::Color, unsigned int) (Ch.cpp:290)
==1005305== by 0x7C8391: Upp::MakeButton(int, Upp::Color, double, Upp::Color, unsigned int) (Ch.cpp:297)
Regards,
Novo
|
|
|
Re: ide: Assist parsing now parallel and some of it background [message #54330 is a reply to message #54329] |
Tue, 23 June 2020 17:02   |
 |
mirek
Messages: 14256 Registered: November 2005
|
Ultimate Member |
|
|
Novo wrote on Tue, 23 June 2020 15:24mirek wrote on Tue, 23 June 2020 04:54
I am trying to decipher that, but so far it _looks_ like races in GTK. Or maybe false reports of races in GTK...
IMHO, it is very unlikely that GTK has races. Maybe, it just requires extra-synchronization ...
Well, the first error reported by sanitizer
==================
WARNING: ThreadSanitizer: data race (pid=27062)
Read of size 8 at 0x7b04000096a0 by thread T1:
#0 strlen <null> (libtsan.so.0+0x31275)
#1 pthread_setname_np ../sysdeps/unix/sysv/linux/pthread_setname.c:38 (libpthread.so.0+0x1391c)
#2 <null> <null> (libglib-2.0.so.0+0x7415d)
Previous write of size 8 at 0x7b04000096a0 by main thread (mutexes: write M505):
#0 malloc <null> (libtsan.so.0+0x2ae03)
#1 g_malloc <null> (libglib-2.0.so.0+0x51ab8)
#2 main /home/cxl/upp.src/uppsrc/ide/main.cpp:120 (debugide+0x51ee31)
Location is heap block of size 13 at 0x7b04000096a0 allocated by main thread:
#0 malloc <null> (libtsan.so.0+0x2ae03)
#1 g_malloc <null> (libglib-2.0.so.0+0x51ab8)
#2 main /home/cxl/upp.src/uppsrc/ide/main.cpp:120 (debugide+0x51ee31)
Mutex M505 (0x000001f35198) created at:
#0 pthread_mutex_init <null> (libtsan.so.0+0x2c5ad)
#1 Mutex /home/cxl/upp.src/uppsrc/Core/Mt.cpp:601 (debugide+0xbc27ac)
#2 Upp::StaticPrimitive_<Upp::Mutex>::Initialize() /home/cxl/upp.src/uppsrc/Core/Mt.h:313 (debugide+0x81c9ca)
#3 Upp::StaticPrimitive_<Upp::Mutex>::Get() /home/cxl/upp.src/uppsrc/Core/Mt.h:316 (debugide+0x81c901)
#4 Upp::StaticMutex::Enter() /home/cxl/upp.src/uppsrc/Core/Mt.h:323 (debugide+0x816818)
#5 Upp::EnterGuiMutex() /home/cxl/upp.src/uppsrc/CtrlCore/CtrlMt.cpp:15 (debugide+0x12d2658)
#6 GuiLock /home/cxl/upp.src/uppsrc/CtrlCore/CtrlCore.h:66 (debugide+0x7d5614)
#7 Upp::Ctrl::InstallKeyHook(bool (*)(Upp::Ctrl*, unsigned int, int)) /home/cxl/upp.src/uppsrc/CtrlCore/Ctrl.cpp:712 (debugide+0x12de181)
#8 Upp::s__sF29_328_fn() /home/cxl/upp.src/uppsrc/CtrlLib/MenuBar.cpp:330 (debugide+0x97a71c)
#9 Callinit /home/cxl/upp.src/uppsrc/Core/Defs.h:86 (debugide+0x583742)
#10 __cxx_global_var_init.120 /home/cxl/upp.src/uppsrc/CtrlLib/MenuBar.cpp:328 (debugide+0x41311f)
#11 _GLOBAL__sub_I_CtrlLib_blitz.cpp /home/cxl/.cache/upp.out/uppsrc/CtrlLib/CLANG_TS.Debug.Debug_Full.Gui.Shared/CtrlLib$blitz.cpp (debugide+0x413fc5)
#12 __libc_csu_init <null> (debugide+0x154e76c)
Thread T1 'dconf worker' (tid=27064, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2bcee)
#1 <null> <null> (libglib-2.0.so.0+0x9240f)
#2 main /home/cxl/upp.src/uppsrc/ide/main.cpp:120 (debugide+0x51ee31)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x31275) in __interceptor_strlen
This looks like "dconf worker", which I think is DBus related, is trying to set the name of thread to a value set by main gtk thread and passed by the heap. The only U++ code referenced is our locked mutex, which is really only listed because it is being locked at the same time...
Mirek
|
|
|
Re: ide: Assist parsing now parallel and some of it background [message #54331 is a reply to message #54328] |
Tue, 23 June 2020 19:43   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Tue, 23 June 2020 09:17
How about now?
uninitialised value is gone.
I do not see Upp::ConditionVariable::Broadcast() problem anymore.
Almost all complains of DRD are related to Upp::Ctrl::Create(Upp::Ctrl*, bool) --> g_task_run_in_thread() now.
I guess this issue can be ignored.
Thanks.
Regards,
Novo
|
|
|
Re: ide: Assist parsing now parallel and some of it background [message #54332 is a reply to message #54331] |
Tue, 23 June 2020 19:56  |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
Novo wrote on Tue, 23 June 2020 13:43mirek wrote on Tue, 23 June 2020 09:17
How about now?
uninitialised value is gone.
I do not see Upp::ConditionVariable::Broadcast() problem anymore.
Almost all complains of DRD are related to Upp::Ctrl::Create(Upp::Ctrl*, bool) --> g_task_run_in_thread() now.
I guess this issue can be ignored.
Thanks.
Actually, these messages look similar to what ThreadSanitizer is reporting:
WARNING: ThreadSanitizer: data race (pid=1166000)
Write of size 8 at 0x7b1800026040 by main thread (mutexes: write M538):
#0 free <null> (ide+0x442cc8)
#1 <null> <null> (libglib-2.0.so.0+0x4e991)
#2 Upp::Ctrl::Create(Upp::Ctrl*, bool) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlCore/GtkCreate.cpp:74:2 (ide+0x139755a)
#3 Upp::TopWindow::Open(Upp::Ctrl*) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlCore/GtkTop.cpp:129:2 (ide+0x139d035)
#4 Upp::TopWindow::Open() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlCore/GtkTop.cpp:149:2 (ide+0x1387182)
#5 SelectPackageDlg::Load(Upp::String const&) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/SelectPkg.cpp:681:4 (ide+0x4dbe7d)
#6 SelectPackageDlg::OnBase() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/SelectPkg.cpp:360:3 (ide+0x4dfbdd)
#7 Upp::CallbackN<> Upp::callback<SelectPackageDlg, SelectPackageDlg>(SelectPackageDlg*, void (SelectPackageDlg::*)())::'lambda'()::operator()() const /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/CallbackNP.i:38:36 (ide+0x6d2b40)
#8 Upp::Function<void ()>::Wrapper<Upp::CallbackN<> Upp::callback<SelectPackageDlg, SelectPackageDlg>(SelectPackageDlg*, void (SelectPackageDlg::*)())::'lambda'()>::Execute() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/Function.h:17:50 (ide+0x6d29af)
#9 Upp::Function<void ()>::operator()() const /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/Function.h:76:65 (ide+0x635e5b)
#10 Upp::ArrayCtrl::SetCursor0(int, bool) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlLib/ArrayCtrl.cpp:1429:3 (ide+0x993bca)
#11 Upp::ArrayCtrl::SetCursor(int) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlLib/ArrayCtrl.cpp:1449:9 (ide+0x98e059)
#12 Upp::ArrayCtrl::FindSetCursor(Upp::Value const&, int, int) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlLib/ArrayCtrl.cpp:2410:6 (ide+0x9a80f1)
#13 SelectPackageDlg::SyncBase(Upp::String) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/SelectPkg.cpp:699:11 (ide+0x4e1fd1)
#14 SelectPackageDlg::Run(Upp::String) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/SelectPkg.cpp:311:3 (ide+0x4e18d2)
#15 SelectPackage(char const*, char const*, bool, bool) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/SelectPkg.cpp:724:17 (ide+0x4e63b5)
#16 Ide::OpenMainPackage() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/ide.cpp:157:13 (ide+0x520147)
#17 GuiMainFn_() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/main.cpp:306:20 (ide+0x5c7190)
#18 Upp::AppExecute__(void (*)()) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/App.cpp:442:3 (ide+0xc71a85)
#19 main /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/main.cpp:120:1 (ide+0x5c57dc)
Previous write of size 8 at 0x7b1800026040 by thread T21:
#0 calloc <null> (ide+0x4428f0)
#1 g_malloc0 <null> (libglib-2.0.so.0+0x57d30)
Mutex M538 (0x0000027ca0c8) created at:
#0 pthread_mutex_init <null> (ide+0x4454bd)
#1 Upp::Mutex::Mutex() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/Mt.cpp:601:2 (ide+0xc506ac)
#2 Upp::StaticPrimitive_<Upp::Mutex>::Initialize() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/Mt.h:313:46 (ide+0x8b63da)
#3 Upp::StaticPrimitive_<Upp::Mutex>::Get() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/Mt.h:316:38 (ide+0x8b6317)
#4 Upp::StaticMutex::Enter() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/Mt.h:323:31 (ide+0x8b02c8)
#5 Upp::EnterGuiMutex() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlCore/CtrlMt.cpp:15:10 (ide+0x1350079)
#6 Upp::GuiLock::GuiLock() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlCore/CtrlCore.h:66:15 (ide+0x8709c4)
#7 Upp::Ctrl::InstallKeyHook(bool (*)(Upp::Ctrl*, unsigned int, int)) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlCore/Ctrl.cpp:712:10 (ide+0x135b6a1)
#8 Upp::s__sF29_328_fn() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlLib/MenuBar.cpp:330:2 (ide+0xa0ffca)
#9 Upp::Callinit::Callinit(void (*)(), char const*, int) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/Defs.h:86:83 (ide+0x627646)
#10 __cxx_global_var_init.119 /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlLib/MenuBar.cpp:328:1 (ide+0x42d0f9)
#11 _GLOBAL__sub_I_CtrlLib_blitz.cpp /home/ssg/dvlp/cpp/code/upp/out/uppsrc/CtrlLib/CLANGcpp17tsan.Debug.Debug_Full.Gui.Shared.Usemalloc/CtrlLib$blitz.cpp (ide+0x42de3b)
#12 __libc_csu_init <null> (ide+0x15cbddc)
Thread T21 'pool-ide' (tid=1166023, running) created by main thread at:
#0 pthread_create <null> (ide+0x443f3b)
#1 <null> <null> (libglib-2.0.so.0+0x9f11a)
#2 Upp::Ctrl::PopUp(Upp::Ctrl*, bool, bool, bool, bool) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/CtrlCore/GtkCreate.cpp:153:2 (ide+0x1398e23)
#3 ShowSplash() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/About.cpp:109:23 (ide+0x5936c5)
#4 GuiMainFn_() /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/main.cpp:282:4 (ide+0x5c6f7d)
#5 Upp::AppExecute__(void (*)()) /home/ssg/dvlp/cpp/code/upp/git/uppsrc/Core/App.cpp:442:3 (ide+0xc71a85)
#6 main /home/ssg/dvlp/cpp/code/upp/git/uppsrc/ide/main.cpp:120:1 (ide+0x5c57dc)
In this case it is Thread T21 'pool-ide' and Upp::Ctrl::Create(Upp::Ctrl*, bool) again ...
Regards,
Novo
|
|
|
Goto Forum:
Current Time: Wed Apr 30 00:46:06 CEST 2025
Total time taken to generate the page: 0.01661 seconds
|
|
|