Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ TheIDE » U++ TheIDE: Other Features Wishlist and/or Bugs » Compilation warnings and random crashes
Compilation warnings and random crashes [message #60585] Wed, 22 May 2024 00:10 Go to next message
Novo is currently offline  Novo
Messages: 1430
Registered: December 2006
Ultimate Contributor
I get a bunch of warnings like below when compiling on MacOS 10.15:
/Users/XXX/dvlp/cpp/code/upp/git/uppsrc/ide/RepoSync.cpp:283:6: note: use non-reference type 'Upp::KeyValueRef<Upp::String, int>'
        for(const auto& w : ~work) {
            ^~~~~~~~~~~~~~~

Basically, a reference is pointing to a temporary object.

And I'm getting random crashes with TheIDE when launching it on Linux (I'm not using a binary compiled on MacOS Smile)

I guess, these crashes and references to temporary objects are related.

TIA


Regards,
Novo

[Updated on: Tue, 28 May 2024 20:31]

Report message to a moderator

Re: Compilation warnings and random crashes [message #60593 is a reply to message #60585] Sun, 26 May 2024 06:54 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1430
Registered: December 2006
Ultimate Contributor
VectorMap<String, int> work;

work is VectorMap ...
MapKVRange<AMap, K, T> operator~()                   { return MapKVRange<AMap, K, T>(*this); }

operator~() returns a newly created object.
So, compiler is right: you are referencing temporary objects ...


Regards,
Novo
Re: Compilation warnings and random crashes [message #60655 is a reply to message #60593] Wed, 26 June 2024 14:44 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
It is allowed. Range in for loop can be temporary.

Here is the disscussion (note that it discusses UB case, but U++ use is the first legal one):

https://www.sandordargo.com/blog/2022/04/20/range-base-p2012

I am currently testing with MacOS 14.5 and getting no such warning. Crashes in Linux are probably caused by something else.

Mirek
Re: Compilation warnings and random crashes [message #60948 is a reply to message #60655] Sun, 13 October 2024 12:50 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
Hi,

I think I can confirm Novo here.

TheIDE crashes frequently on linux (gtk), on the main package selection screen if I close a project and try to open a new one.

It appears to happen while TheIDE is trying to load the packages list.

I am using the nightly builds.

P.s.: One other point is, I don't get any crashes or warnings on debug builds. No matter how I tried, it just did not crash. (in release builds I get the invalid memory access error a lot.)

Best regards,

Oblivion


[Updated on: Sun, 13 October 2024 13:11]

Report message to a moderator

Re: Compilation warnings and random crashes [message #60990 is a reply to message #60948] Thu, 17 October 2024 11:34 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
Oblivion wrote on Sun, 13 October 2024 12:50
Hi,

I think I can confirm Novo here.

TheIDE crashes frequently on linux (gtk), on the main package selection screen if I close a project and try to open a new one.



You mean completely close theide, then start it again? Or choose File / Open main package?

If the first one, does it depend on the interval between closing and starting again?

In both cases, does it crash without user inputs or do you do something?
Re: Compilation warnings and random crashes [message #60991 is a reply to message #60948] Thu, 17 October 2024 11:36 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
Oblivion wrote on Sun, 13 October 2024 12:50


P.s.: One other point is, I don't get any crashes or warnings on debug builds. No matter how I tried, it just did not crash. (in release builds I get the invalid memory access error a lot.)


What about release build with full debug info, started from gdb?
Re: Compilation warnings and random crashes [message #60992 is a reply to message #60991] Thu, 17 October 2024 11:47 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
Hello Mirek,

It does not happen when I completely exit TheIdE. It only happens when I try to open another project. The package selection screen comes up and the app crashes (not always, but most of the time).

TheIDE on release mode (FULL_DEBUG flag) points to below line:

Thread 1 "theide" received signal SIGSEGV, Segmentation fault.
Upp::Image::Image (this=0x7ffffffe71e0, img=...) at /home/user/upp/devel/uppsrc/Draw/Image.cpp:295
295			data->Retain();



I hope this helps.

Best regards,

Oblivion


Re: Compilation warnings and random crashes [message #60993 is a reply to message #60992] Thu, 17 October 2024 12:03 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
Oblivion wrote on Thu, 17 October 2024 11:47
Hello Mirek,

It does not happen when I completely exit TheIdE. It only happens when I try to open another project. The package selection screen comes up and the app crashes (not always, but most of the time).

TheIDE on release mode (FULL_DEBUG flag) points to below line:

Thread 1 "theide" received signal SIGSEGV, Segmentation fault.
Upp::Image::Image (this=0x7ffffffe71e0, img=...) at /home/user/upp/devel/uppsrc/Draw/Image.cpp:295
295			data->Retain();



Excellent, that narrows it down probably to loading icons, but I bet there is a backtrace ("bt") ?

Mirek

[Updated on: Thu, 17 October 2024 12:03]

Report message to a moderator

Re: Compilation warnings and random crashes [message #60994 is a reply to message #60993] Thu, 17 October 2024 12:11 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
Oops, I forgot to attach that. Rolling Eyes


#0  Upp::Image::Image (this=0x7ffffffe71e0, img=...) at /home/user/upp/devel/uppsrc/Draw/Image.cpp:295
#1  Upp::Iml::Get (this=<optimized out>, i=<optimized out>) at /home/user/upp/devel/uppsrc/Draw/Iml.cpp:154
#2  0x00005555556e76e9 in SelectPackageDlg::SyncList (this=this@entry=0x7ffffffe7750, find=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:677
#3  0x00005555556deead in SelectPackageDlg::Load (this=this@entry=0x7ffffffe7750, find=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:761
#4  0x00005555556e3ac4 in SelectPackageDlg::OnBase (this=0x7ffffffe7750) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:420
#5  0x0000555555996e1f in Upp::Function<void()>::operator() (this=0x7ffffffe8800) at /home/user/upp/devel/uppsrc/Core/Function.h:76
#6  Upp::ArrayCtrl::SetCursor0 (this=0x7ffffffe8290, i=8, dosel=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlLib/ArrayCtrl.cpp:1487
#7  0x00005555556e6a76 in SelectPackageDlg::SyncBase (this=this@entry=0x7ffffffe7750, initvars=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:837
#8  0x00005555556e630d in SelectPackageDlg::Run (this=this@entry=0x7ffffffe7750, nest=..., startwith=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:362
#9  0x00005555556ecd3b in SelectPackage (nest=..., title=title@entry=0x7ffff25d4bc8 "Select main package (TheIDE 17514)", startwith=0x7ffff273f748 "examples/SshTerminalSplitterExample", selectvars=<optimized out>, main=<optimized out>)
    at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:864
#10 0x000055555572ae45 in Ide::OpenMainPackage (this=0x7ffffffe9e10) at /home/user/upp/devel/uppsrc/ide/ide.cpp:215
#11 0x000055555572b0a2 in Ide::NewMainPackage (this=0x7ffffffe71e0) at /home/user/upp/devel/uppsrc/ide/ide.cpp:234
#12 0x0000555555cd932e in Upp::Function<void()>::operator() (this=<optimized out>) at /home/user/upp/devel/uppsrc/Core/Function.h:76
#13 Upp::Ctrl::Action (this=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/Ctrl.cpp:414
#14 0x0000555555a26f0b in Upp::MenuItem::LeftUp (this=0x7ffff26cdd60) at /home/user/upp/devel/uppsrc/CtrlLib/MenuItem.cpp:382
#15 0x0000555555ce71b0 in Upp::Ctrl::MouseEvent (this=0x7ffffffe71e0, event=<optimized out>, p=..., zdelta=115, keyflags=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:190
#16 0x0000555555ce67bf in Upp::Ctrl::MouseEvent0 (this=this@entry=0x7ffff26cdd60, event=event@entry=145, p=..., zdelta=zdelta@entry=0, keyflags=keyflags@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:96
#17 0x0000555555ce6b46 in Upp::Ctrl::MouseEventH (this=this@entry=0x7ffff26cdd60, event=event@entry=145, p=..., zdelta=zdelta@entry=0, keyflags=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:116
#18 0x0000555555ce81de in Upp::Ctrl::MEvent0 (this=this@entry=0x7ffff26cdd60, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:364
#19 0x0000555555ce8837 in Upp::Ctrl::DispatchMouseEvent (this=<optimized out>, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:648
#20 0x0000555555ce8810 in Upp::Ctrl::DispatchMouseEvent (this=<optimized out>, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:648
#21 0x0000555555ce8810 in Upp::Ctrl::DispatchMouseEvent (this=this@entry=0x7ffff260ada0, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:648
#22 0x0000555555ceaa88 in Upp::Ctrl::DispatchMouse (this=this@entry=0x7ffff260ada0, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:622
#23 0x0000555555cfddb6 in Upp::Ctrl::DispatchMouseIn (this=0x7ffff260ada0, act=145, zd=0) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:444
#24 Upp::Ctrl::GtkMouseEvent (this=<optimized out>, action=<optimized out>, act=145, zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:454
#25 0x0000555555cfe04b in Upp::Ctrl::GtkButtonEvent (this=this@entry=0x7ffff260ada0, action=action@entry=144) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:478
#26 0x0000555555cfec24 in Upp::Ctrl::Proc (this=this@entry=0x7ffff260ada0) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:581
#27 0x0000555555cffb84 in Upp::Ctrl::ProcessEvent0 (quit=quit@entry=0x0, fetch=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:766
#28 0x0000555555cffd81 in Upp::Ctrl::ProcessEvents0 (quit=quit@entry=0x0, fetch=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:793
#29 0x0000555555cf171e in Upp::Ctrl::ProcessEvents (quit=0x0) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:810
#30 Upp::Ctrl::EventLoop (ctrl=ctrl@entry=0x7ffffffe9e10) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:844
#31 0x0000555555cf4ded in Upp::TopWindow::Run (this=0x7ffffffe9e10, appmodal=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/TopWindow.cpp:323
#32 0x00005555557bbdb6 in GuiMainFn_ () at /home/user/upp/devel/uppsrc/ide/main.cpp:435
#33 0x0000555555ae38ab in Upp::AppExecute__ (app=0x5555557bac20 <GuiMainFn_()>) at /home/user/upp/devel/uppsrc/Core/App.cpp:479
#34 0x00005555557bab45 in main (argc=1, argv=0x7fffffffe088, envptr=0x55555683fe00) at /home/user/upp/devel/uppsrc/ide/main.cpp:177




Best regards,
Oblivion


Re: Compilation warnings and random crashes [message #60995 is a reply to message #60994] Thu, 17 October 2024 13:01 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
Can I ask for a little experiment:

ide/SelectPkg.cpp:671

	for(int i = 0; i < packages.GetCount(); i++) {
		const PkInfo& pkg = packages[i];
		Image icon = IdeImg::Package();
	/*
		Image icon = pkg.icon;
		if(IsNull(icon)) {
			if(pkg.main)
				icon = pkg.upphub ? IdeImg::HubMainPackage() : IdeImg::MainPackage();
			else
				icon = pkg.upphub ? IdeImg::HubPackage() : IdeImg::Package();
		}
	*/
		nest_list.Add(pkg.nest);
		clist.Add(pkg.package, DPI(icon, 16));
		alist.Add(pkg.package, GetFileName(pkg.nest), pkg.description, icon);
		alist.SetDisplay(alist.GetCount() - 1, 0, pkg.main ? bpd : pd);
	}


ide/SelectPkg.cpp:790

					if(d.ispackage && 0) {
						String icon_path;
						if(IsUHDMode())


Does it crash with these?

Mirek

[Updated on: Thu, 17 October 2024 13:01]

Report message to a moderator

Re: Compilation warnings and random crashes [message #60996 is a reply to message #60995] Thu, 17 October 2024 13:10 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
Done.
No crashes.Tried it ovew 30 times. Usually it should have crashed at my every 2nd or 3rd attempt.

If you need any more test, let me know.

Best regards,
Oblivion


Re: Compilation warnings and random crashes [message #60997 is a reply to message #60996] Thu, 17 October 2024 13:18 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
Oblivion wrote on Thu, 17 October 2024 13:10
Done.
No crashes.Tried it ovew 30 times. Usually it should have crashed at my every 2nd or 3rd attempt.

If you need any more test, let me know.

Best regards,
Oblivion


Well, try to reactivate the first oneand leave the second one (... && 0)

And then maybe reversed Smile

[Updated on: Thu, 17 October 2024 13:18]

Report message to a moderator

Re: Compilation warnings and random crashes [message #60998 is a reply to message #60997] Thu, 17 October 2024 13:22 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
The first one crashes. The second one doesn't.


Best regards,
Oblivion


Re: Compilation warnings and random crashes [message #60999 is a reply to message #60998] Thu, 17 October 2024 13:30 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
What about (after reverting to master to remove both changes):

ide/SelectPkg.cpp:787
					if(d.ispackage) {
						String icon_path;
						if(IsUHDMode())
							icon_path = AppendFileName(path, "icon32x32.png");
						if(IsNull(icon_path) || !FileExists(icon_path))
							icon_path = AppendFileName(path, "icon16x16.png");
						tm = FileGetTime(icon_path);
						if(IsNull(tm)) // package icon does not exist
							d.icon = Null;
						else
						if(tm != d.itm || d.icon.GetSize().cx != DPI(16)) { // chached package icon outdated
							d.icon = StreamRaster::LoadFileAny(icon_path);
							d.itm = tm;
						}
						d.icon.Clear();
					}


(added d.icon.Clear to make it Null)
Re: Compilation warnings and random crashes [message #61000 is a reply to message #60999] Thu, 17 October 2024 13:53 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
No, reverting to master and clearing the icon didn't help. Crashes returned.

Best regards,
Oblivion


Re: Compilation warnings and random crashes [message #61001 is a reply to message #61000] Thu, 17 October 2024 14:00 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
What about this:

DLOG("==================");
	for(int i = 0; i < packages.GetCount(); i++) {
		const PkInfo& pkg = packages[i];
		Image icon = pkg.icon;
		RDUMP(IdeImg::HubMainPackage().GetSize());
		RDUMP(IdeImg::MainPackage().GetSize());
		RDUMP(IdeImg::HubPackage().GetSize());
		RDUMP(IdeImg::Package().GetSize());
		RDUMP(~IdeImg::HubMainPackage());
		RDUMP(~IdeImg::MainPackage());
		RDUMP(~IdeImg::HubPackage());
		RDUMP(~IdeImg::Package());
		if(IsNull(icon)) {
			if(pkg.main)
				icon = pkg.upphub ? IdeImg::HubMainPackage() : IdeImg::MainPackage();
			else
				icon = pkg.upphub ? IdeImg::HubPackage() : IdeImg::Package();
		}
		nest_list.Add(pkg.nest);
		clist.Add(pkg.package, DPI(icon, 16));
		alist.Add(pkg.package, GetFileName(pkg.nest), pkg.description, icon);
		alist.SetDisplay(alist.GetCount() - 1, 0, pkg.main ? bpd : pd);
	}


(log after crash...)

Mirek

[Updated on: Thu, 17 October 2024 14:01]

Report message to a moderator

Re: Compilation warnings and random crashes [message #61002 is a reply to message #61001] Thu, 17 October 2024 14:40 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
==================
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
****************** PANIC: Invalid memory access!



Re: Compilation warnings and random crashes [message #61003 is a reply to message #60585] Thu, 17 October 2024 14:48 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1206
Registered: August 2007
Senior Contributor
This time I get another error


LOG

==================
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7ffff25a8850
~IdeImg::MainPackage() = 0x7ffff24edb50
~IdeImg::HubPackage() = 0x7ffff2731750
~IdeImg::Package() = 0x7ffff2579a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7ffff25a8850
~IdeImg::MainPackage() = 0x7ffff24edb50
~IdeImg::HubPackage() = 0x7ffff2731750
~IdeImg::Package() = 0x7ffff2579a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7ffff25a8850
~IdeImg::MainPackage() = 0x7ffff24edb50
~IdeImg::HubPackage() = 0x7ffff2731750
~IdeImg::Package() = 0x7ffff2579a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7ffff25a8850
~IdeImg::MainPackage() = 0x7ffff24edb50
~IdeImg::HubPackage() = 0x7ffff2731750
~IdeImg::Package() = 0x7ffff2579a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7ffff25a8850
~IdeImg::MainPackage() = 0x7ffff24edb50
~IdeImg::HubPackage() = 0x7ffff2731750
~IdeImg::Package() = 0x7ffff2579a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7ffff25a8850
~IdeImg::MainPackage() = 0x7ffff24edb50
~IdeImg::HubPackage() = 0x7ffff2731750
~IdeImg::Package() = 0x7ffff2579a50



Backtrace:
--------------------------------
#0  Upp::String0::LSet (this=0x7ffffffe70e0, s=...) at /home/user/upp/devel/uppsrc/Core/StringMem.i:10
#1  0x0000555555c65b47 in Upp::String0::Set0 (this=0x7ffffffe70e0, s=...) at /home/user/upp/devel/uppsrc/Core/String.h:264
#2  Upp::String::String (this=0x7ffffffe70e0, s=...) at /home/user/upp/devel/uppsrc/Core/String.h:385
#3  Upp::Iml::GetId (this=0x5555566b3250 <IdeImg::Iml()::iml>, i=<optimized out>) at /home/user/upp/devel/uppsrc/Draw/Image.h:317
#4  Upp::Iml::Get (this=0x5555566b3250 <IdeImg::Iml()::iml>, i=<optimized out>) at /home/user/upp/devel/uppsrc/Draw/Iml.cpp:150
#5  0x00005555557a11ff in IdeImg::Get (i=327) at /home/user/upp/devel/uppsrc/Draw/iml_source.h:113
#6  0x000055555588db97 in SelectPackageDlg::SyncList (this=this@entry=0x7ffffffe7750, find=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:686
#7  0x000055555588556b in SelectPackageDlg::Load (this=this@entry=0x7ffffffe7750, find=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:769
#8  0x0000555555889ea4 in SelectPackageDlg::OnBase (this=0x7ffffffe7750) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:420
#9  0x000055555599743f in Upp::Function<void()>::operator() (this=0x7ffffffe8800) at /home/user/upp/devel/uppsrc/Core/Function.h:76
#10 Upp::ArrayCtrl::SetCursor0 (this=0x7ffffffe8290, i=8, dosel=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlLib/ArrayCtrl.cpp:1487
#11 0x000055555588c9c6 in SelectPackageDlg::SyncBase (this=this@entry=0x7ffffffe7750, initvars=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:846
#12 0x000055555588c2b7 in SelectPackageDlg::Run (this=this@entry=0x7ffffffe7750, nest=..., startwith=...) at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:362
#13 0x0000555555891c3b in SelectPackage (nest=..., title=title@entry=0x7fff9a50a388 "Select main package (TheIDE 17522)", startwith=0x7ffffffea630 "GLDrawDemo", selectvars=<optimized out>, main=<optimized out>)
    at /home/user/upp/devel/uppsrc/ide/SelectPkg.cpp:873
#14 0x000055555571c835 in Ide::OpenMainPackage (this=0x7ffffffe9e10) at /home/user/upp/devel/uppsrc/ide/ide.cpp:215
#15 0x000055555571ca92 in Ide::NewMainPackage (this=0x7ffffffe70e0) at /home/user/upp/devel/uppsrc/ide/ide.cpp:234
#16 0x0000555555cd9d2e in Upp::Function<void()>::operator() (this=<optimized out>) at /home/user/upp/devel/uppsrc/Core/Function.h:76
#17 Upp::Ctrl::Action (this=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/Ctrl.cpp:414
#18 0x0000555555a2752b in Upp::MenuItem::LeftUp (this=0x7ffff26cdd60) at /home/user/upp/devel/uppsrc/CtrlLib/MenuItem.cpp:382
#19 0x0000555555ce7b00 in Upp::Ctrl::MouseEvent (this=0x7ffffffe70e0, event=<optimized out>, p=..., zdelta=0, keyflags=1447356480) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:190
#20 0x0000555555ce710f in Upp::Ctrl::MouseEvent0 (this=this@entry=0x7ffff26cdd60, event=event@entry=145, p=..., zdelta=zdelta@entry=0, keyflags=keyflags@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:96
#21 0x0000555555ce7496 in Upp::Ctrl::MouseEventH (this=this@entry=0x7ffff26cdd60, event=event@entry=145, p=..., zdelta=zdelta@entry=0, keyflags=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:116
#22 0x0000555555ce8b2e in Upp::Ctrl::MEvent0 (this=this@entry=0x7ffff26cdd60, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:364
#23 0x0000555555ce9187 in Upp::Ctrl::DispatchMouseEvent (this=<optimized out>, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:648
#24 0x0000555555ce9160 in Upp::Ctrl::DispatchMouseEvent (this=<optimized out>, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:648
#25 0x0000555555ce9160 in Upp::Ctrl::DispatchMouseEvent (this=this@entry=0x7ffff260aa80, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:648
#26 0x0000555555ceb3d8 in Upp::Ctrl::DispatchMouse (this=this@entry=0x7ffff260aa80, e=e@entry=145, p=..., zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/CtrlMouse.cpp:622
#27 0x0000555555cfea56 in Upp::Ctrl::DispatchMouseIn (this=0x7ffff260aa80, act=145, zd=0) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:444
#28 Upp::Ctrl::GtkMouseEvent (this=<optimized out>, action=<optimized out>, act=145, zd=zd@entry=0) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:454
#29 0x0000555555cfeceb in Upp::Ctrl::GtkButtonEvent (this=this@entry=0x7ffff260aa80, action=action@entry=144) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:478
#30 0x0000555555cff8c4 in Upp::Ctrl::Proc (this=this@entry=0x7ffff260aa80) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:581
#31 0x0000555555d00824 in Upp::Ctrl::ProcessEvent0 (quit=quit@entry=0x0, fetch=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:766
#32 0x0000555555d00a21 in Upp::Ctrl::ProcessEvents0 (quit=quit@entry=0x0, fetch=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:793
#33 0x0000555555cf206e in Upp::Ctrl::ProcessEvents (quit=0x0) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:810
#34 Upp::Ctrl::EventLoop (ctrl=ctrl@entry=0x7ffffffe9e10) at /home/user/upp/devel/uppsrc/CtrlCore/GtkEvent.cpp:844
#35 0x0000555555cf573d in Upp::TopWindow::Run (this=0x7ffffffe9e10, appmodal=<optimized out>) at /home/user/upp/devel/uppsrc/CtrlCore/TopWindow.cpp:323
#36 0x00005555557adda6 in GuiMainFn_ () at /home/user/upp/devel/uppsrc/ide/main.cpp:435
#37 0x0000555555ae3ecb in Upp::AppExecute__ (app=0x5555557acc10 <GuiMainFn_()>) at /home/user/upp/devel/uppsrc/Core/App.cpp:479
#38 0x00005555557acb35 in main (argc=1, argv=0x7fffffffe088, envptr=0x55555683fe00) at /home/user/upp/devel/uppsrc/ide/main.cpp:177





Re: Compilation warnings and random crashes [message #61004 is a reply to message #61002] Thu, 17 October 2024 15:08 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
Oblivion wrote on Thu, 17 October 2024 14:40
==================
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
IdeImg::HubMainPackage().GetSize() = (16, 16)
IdeImg::MainPackage().GetSize() = (16, 16)
IdeImg::HubPackage().GetSize() = (16, 16)
IdeImg::Package().GetSize() = (16, 16)
~IdeImg::HubMainPackage() = 0x7e845c9a8850
~IdeImg::MainPackage() = 0x7e845c8edb50
~IdeImg::HubPackage() = 0x7e845cb31750
~IdeImg::Package() = 0x7e845c979a50
****************** PANIC: Invalid memory access!



Weird...

What about

	for(int i = 0; i < packages.GetCount(); i++) {
		const PkInfo& pkg = packages[i];
		Image icon = pkg.icon;
		#define DD(x)  RDUMP(x.GetSize()); RLOGHEXDUMP(~x, min(32, int(x.GetLength() * sizeof(RGBA))));
		DD(IdeImg::HubMainPackage());
		DD(IdeImg::MainPackage());
		DD(IdeImg::Package());
		DD(IdeImg::HubPackage());
		DD(icon);
		#undef DD
		if(IsNull(icon)) {


As far I can see it is either

- compiler bug
- IdeImg is busted, but it is weird that it does not happen in the first iteration
- pkg.icon is busted, although this is hardly explains final crash in Image copy contructor (that AFAIK is call to Retain the data from Iml)

Another thing to try is

	for(int i = 0; i < packages.GetCount(); i++) {
		const PkInfo& pkg = packages[i];
		Image icon = Null; // <<<<<=============
		#define DD(x)  RDUMP(x.GetSize()); RLOGHEXDUMP(~x, min(32, int(x.GetLength() * sizeof(RGBA))));
		DD(IdeImg::HubMainPackage());
		DD(IdeImg::MainPackage());
		DD(IdeImg::Package());
		DD(IdeImg::HubPackage());
		DD(icon);
		#undef DD
		if(IsNull(icon)) {


Uh and please send the whole log - want to compare with "good run" (first invocation of dialog)

[Updated on: Thu, 17 October 2024 15:08]

Report message to a moderator

Re: Compilation warnings and random crashes [message #61007 is a reply to message #61003] Fri, 18 October 2024 09:29 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 14258
Registered: November 2005
Ultimate Member
Oblivion wrote on Thu, 17 October 2024 14:48
This time I get another error


After a lot of thinking I believe that the only plausible explanation is that another thread calls Iml::Reset somehow.

Can you crash it and then send backtrace of ALL threads?
Previous Topic: fix Core\Diag.h
Next Topic: Help & Topics (in window) dark mode toolbar icon
Goto Forum:
  


Current Time: Wed May 14 16:26:57 CEST 2025

Total time taken to generate the page: 0.03370 seconds