The Help Thread
Moderator: Committer
Re: Problems with FreeOrion in Debian unstable.
No, I prefer to package GG separately, and so did I.tzlaine wrote:I know I've seen this before, but I can't remember what the problem was. Before I look into any further, are you using the latest GG from SVN?
My freeorion packages use an external GG (0.6.0 in this case), so I will package latest GG and will back with an answer.tzlaine wrote:You list GG 0.6.0 above, but you should be using the one that comes with an FO checkout in Freeorion/GG, which will always be the latest.
Thanks for the hint, tz.
Ender.
Debian developer
- loonycyborg
- Compilation Expert
- Posts: 219
- Joined: Thu Jul 06, 2006 10:30 pm
- Location: Russia/Moscow
Re: Problems with FreeOrion on Debian unstable.
I get this message too, when my crashes occur ("compiler questions" thread).Jo-Con-El wrote: std::runtime_error exception caught in GUI::Run(): SidePanel::PlanetPanel::GetPlanet: planet not found!
Also, I discovered that some boost regression tests for boost::signals library fail on my system when compiled with gcc-4 but not with gcc-3.
Re: Problems with FreeOrion in Debian unstable.
Hello, tzlaine. I upgraded to latest GG (as of 20060927) and as I guessed, no changes. Well, in fact, there is a change: where it (before the new GG) apparently returned a random planet number in m_planet_id (I am printing it before dying), the four tests with new GG have always returned planet 0:tzlaine wrote:I know I've seen this before, but I can't remember what the problem was. Before I look into any further, are you using the latest GG from SVN? You list GG 0.6.0 above, but you should be using the one that comes with an FO checkout in Freeorion/GG, which will always be the latest.
Planet #0
std::runtime_error exception caught in GUI::Run(): SidePanel::PlanetPanel::GetPlanet: planet not found!Initiating Exit (code 1 - error termination)
Any hint? I am...disappointed.
Best regards,
Ender.
Debian developer
Re: Problems with FreeOrion on Debian unstable.
Uufff...I think that rebuilding the whole pile with gcc-3.3 is not feasible for me at this time. That would include:loonycyborg wrote:I get this message too, when my crashes occur ("compiler questions" thread).Jo-Con-El wrote: std::runtime_error exception caught in GUI::Run(): SidePanel::PlanetPanel::GetPlanet: planet not found!
Also, I discovered that some boost regression tests for boost::signals library fail on my system when compiled with gcc-4 but not with gcc-3.
GG
Boost (the whole thing)
devIL
And probably several other C++ dependencies I have not think of...
Any idea or debug method? As I stated before, debugging FO is very difficult, due to the server giving timeouts. Will a backtrace be useful?
Best regards,
Ender.
Debian developer
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Problems with FreeOrion in Debian unstable.
Could you add the following at the end of SidePanel::PlanetPanel::PlanetPanel(...)?Jo-Con-El wrote:Planet #0
std::runtime_error exception caught in GUI::Run(): SidePanel::PlanetPanel::GetPlanet: planet not found!Initiating Exit (code 1 - error termination)
Code: Select all
Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: planet id: " << planet.ID();
Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: const planet id: " << plt->ID();
Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: m_planet_id: " << m_planet_id;
Also, after
Code: Select all
Logger().debugStream() << "FocusSelector::PrimaryFocusClicked: " << button;
Code: Select all
Logger().debugStream() << "FocusSelector::PrimaryFocusClicked: " << button;
And then add
Code: Select all
Logger().debugStream() << "SidePanel::PlanetPanel::SetPrimaryFocus: " << focus;
Re: Problems with FreeOrion in Debian unstable.
Hello, Geoff. Many thanks for the help.
I am going to rebuild the package and will come back with the results.
Best regards,
Done.Geoff the Medio wrote:Could you add the following at the end of SidePanel::PlanetPanel::PlanetPanel(...)?Perhaps SidePanel::PlanetPanel::m_planet_id is not properly set to the ID of the planet that was passed to the constructor. The new lines check what the value of m_planet_id, and the id of the object that was passed to the constructor, and the id of the object pointed to by a pointer that should point to the object with the same id, are at the end of the constructor and outputs them to the console.Code: Select all
Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: planet id: " << planet.ID(); Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: const planet id: " << plt->ID(); Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: m_planet_id: " << m_planet_id;
I guess that you meant above:Geoff the Medio wrote:Also, afterPlease add:Code: Select all
Logger().debugStream() << "FocusSelector::PrimaryFocusClicked: " << button;
in FocusSelector::PrimaryFocusClicked(...)Code: Select all
Logger().debugStream() << "FocusSelector::PrimaryFocusClicked: " << button;
Done."Also, afterPlease add:Code: Select all
FocusType focus = FocusType(m_first_button_focus + button);
in FocusSelector::PrimaryFocusClicked(...)Code: Select all
Logger().debugStream() << "FocusSelector::PrimaryFocusClicked: " << button;
Done.Geoff the Medio wrote:And then addat the start of SidePanel::PlanetPanel::SetPrimaryFocus(...), which should check that the focusselector clicks are being processed and signals properly connected to functions to deal with them... and perhaps give a better idea where the error is happening.Code: Select all
Logger().debugStream() << "SidePanel::PlanetPanel::SetPrimaryFocus: " << focus;
I am going to rebuild the package and will come back with the results.
Best regards,
- Ender.
Debian developer
Re: Problems with FreeOrion in Debian unstable.
Hello again.Jo-Con-El wrote:I am going to rebuild the package and will come back with the results.
I had to comment out the 'Logger().debugStream()' line in FocusSelector.cpp due to:
Code: Select all
UI/FocusSelector.cpp: In member function 'void FocusSelector::PrimaryFocusClicked(int)':
UI/FocusSelector.cpp:306: error: 'Logger' was not declared in this scope
scons: *** [UI/FocusSelector-human.o] Error 1
The patch is:
Code: Select all
Index: UI/SidePanel.cpp
===================================================================
--- UI/SidePanel.cpp.orig 2006-09-29 16:43:07.134464000 +0200
+++ UI/SidePanel.cpp 2006-09-29 18:08:11.385459750 +0200
@@ -1,3 +1,4 @@
+#include <iostream>
#include "SidePanel.h"
#include "CUIWnd.h"
@@ -774,6 +775,13 @@
m_connection_planet_production_changed= GG::Connect(plt->ResourceCenterChangedSignal, &SidePanel::PlanetPanel::PlanetResourceCenterChanged, this);
Update();
+
+ std::cerr << "SidePanel::PlanetPanel::PlanetPanel: planet id: " << planet.ID() << std::endl;
+ std::cerr << "SidePanel::PlanetPanel::PlanetPanel: const planet id: " << plt->ID() << std::endl;
+ std::cerr << "SidePanel::PlanetPanel::PlanetPanel: m_planet_id: " << m_planet_id << std::endl;
+ //Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: planet id: " << planet.ID();
+ //Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: const planet id: " << plt->ID();
+ //Logger().debugStream() << "SidePanel::PlanetPanel::PlanetPanel: m_planet_id: " << m_planet_id;
}
SidePanel::PlanetPanel::~PlanetPanel()
@@ -787,7 +795,10 @@
{
Planet *planet = GetUniverse().Object<Planet>(m_planet_id);
if(!planet)
+ { // FIXME
+ printf("Planet # %d\n",m_planet_id); // FIXME
throw std::runtime_error("SidePanel::PlanetPanel::GetPlanet: planet not found!");
+ } // FIXME
return planet;
}
@@ -931,6 +942,8 @@
void SidePanel::PlanetPanel::SetPrimaryFocus(FocusType focus)
{
+ std::cerr << "SidePanel::PlanetPanel::SetPrimaryFocus: " << focus << std::endl;
+ //Logger().debugStream() << "SidePanel::PlanetPanel::SetPrimaryFocus: " << focus;
Planet *planet = GetPlanet();
HumanClientApp::GetApp()->Orders().IssueOrder(new ChangeFocusOrder(HumanClientApp::GetApp()->EmpireID(),planet->ID(),focus,true));
}
Index: UI/FocusSelector.cpp
===================================================================
--- UI/FocusSelector.cpp.orig 2006-09-29 16:42:44.765066000 +0200
+++ UI/FocusSelector.cpp 2006-09-29 17:57:47.618476750 +0200
@@ -1,3 +1,4 @@
+#include <iostream>
#include "FocusSelector.h"
#include "../universe/ResourceCenter.h"
@@ -303,6 +304,8 @@
void FocusSelector::PrimaryFocusClicked(int button)
{
FocusType focus = FocusType(m_first_button_focus + button);
+ std::cerr << "FocusSelector::PrimaryFocusClicked: " << button << std::endl;
+ //Logger().debugStream() << "FocusSelector::PrimaryFocusClicked: " << button;
if (focus == m_primary_focus)
return;
PrimaryFocusChangedSignal(focus);
Code: Select all
NOTE: All warnings about "using the SDL dummy video driver" can safely be ignored.
SidePanel::PlanetPanel::PlanetPanel: planet id: 482
SidePanel::PlanetPanel::PlanetPanel: const planet id: 482
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 482
SidePanel::PlanetPanel::PlanetPanel: planet id: 483
SidePanel::PlanetPanel::PlanetPanel: const planet id: 483
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 483
SidePanel::PlanetPanel::PlanetPanel: planet id: 484
SidePanel::PlanetPanel::PlanetPanel: const planet id: 484
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 484
SidePanel::PlanetPanel::PlanetPanel: planet id: 562
SidePanel::PlanetPanel::PlanetPanel: const planet id: 562
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 562
SidePanel::PlanetPanel::PlanetPanel: planet id: 486
SidePanel::PlanetPanel::PlanetPanel: const planet id: 486
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 486
SidePanel::PlanetPanel::PlanetPanel: planet id: 482
SidePanel::PlanetPanel::PlanetPanel: const planet id: 482
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 482
SidePanel::PlanetPanel::PlanetPanel: planet id: 483
SidePanel::PlanetPanel::PlanetPanel: const planet id: 483
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 483
SidePanel::PlanetPanel::PlanetPanel: planet id: 484
SidePanel::PlanetPanel::PlanetPanel: const planet id: 484
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 484
SidePanel::PlanetPanel::PlanetPanel: planet id: 562
SidePanel::PlanetPanel::PlanetPanel: const planet id: 562
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 562
SidePanel::PlanetPanel::PlanetPanel: planet id: 486
SidePanel::PlanetPanel::PlanetPanel: const planet id: 486
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 486
SidePanel::PlanetPanel::PlanetPanel: planet id: 482
SidePanel::PlanetPanel::PlanetPanel: const planet id: 482
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 482
SidePanel::PlanetPanel::PlanetPanel: planet id: 483
SidePanel::PlanetPanel::PlanetPanel: const planet id: 483
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 483
SidePanel::PlanetPanel::PlanetPanel: planet id: 484
SidePanel::PlanetPanel::PlanetPanel: const planet id: 484
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 484
SidePanel::PlanetPanel::PlanetPanel: planet id: 562
SidePanel::PlanetPanel::PlanetPanel: const planet id: 562
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 562
SidePanel::PlanetPanel::PlanetPanel: planet id: 486
SidePanel::PlanetPanel::PlanetPanel: const planet id: 486
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 486
SidePanel::PlanetPanel::PlanetPanel: planet id: 482
SidePanel::PlanetPanel::PlanetPanel: const planet id: 482
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 482
SidePanel::PlanetPanel::PlanetPanel: planet id: 483
SidePanel::PlanetPanel::PlanetPanel: const planet id: 483
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 483
SidePanel::PlanetPanel::PlanetPanel: planet id: 484
SidePanel::PlanetPanel::PlanetPanel: const planet id: 484
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 484
SidePanel::PlanetPanel::PlanetPanel: planet id: 562
SidePanel::PlanetPanel::PlanetPanel: const planet id: 562
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 562
SidePanel::PlanetPanel::PlanetPanel: planet id: 486
SidePanel::PlanetPanel::PlanetPanel: const planet id: 486
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 486
FocusSelector::PrimaryFocusClicked: 0
SidePanel::PlanetPanel::SetPrimaryFocus: FOCUS_FARMING
Planet # 0
std::runtime_error exception caught in GUI::Run(): SidePanel::PlanetPanel::GetPlanet: planet not found!Initiating Exit (code 1 - error termination)
100 stars
Spiral, 3 arm
Mature
Several
Medium
Uncommon
Human
Blue
But if I try, for example, this other set:
500
Cluster
Mature
Many
High
Common
Human
Blue
Then I click on any star, click on the left arrow of "Unknown System", then a system named "Dosis" appears, and if I try to alter Farming, I get this:
Code: Select all
NOTE: All warnings about "using the SDL dummy video driver" can safely be ignored.
SidePanel::PlanetPanel::PlanetPanel: planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: const planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 3517
SidePanel::PlanetPanel::PlanetPanel: planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1319
SidePanel::PlanetPanel::PlanetPanel: planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1320
SidePanel::PlanetPanel::PlanetPanel: planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1321
SidePanel::PlanetPanel::PlanetPanel: planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1322
SidePanel::PlanetPanel::PlanetPanel: planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1323
SidePanel::PlanetPanel::PlanetPanel: planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1324
SidePanel::PlanetPanel::PlanetPanel: planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: const planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 3517
SidePanel::PlanetPanel::PlanetPanel: planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1319
SidePanel::PlanetPanel::PlanetPanel: planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1320
SidePanel::PlanetPanel::PlanetPanel: planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1321
SidePanel::PlanetPanel::PlanetPanel: planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1322
SidePanel::PlanetPanel::PlanetPanel: planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1323
SidePanel::PlanetPanel::PlanetPanel: planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1324
SidePanel::PlanetPanel::PlanetPanel: planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: const planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 3517
SidePanel::PlanetPanel::PlanetPanel: planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1319
SidePanel::PlanetPanel::PlanetPanel: planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1320
SidePanel::PlanetPanel::PlanetPanel: planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1321
SidePanel::PlanetPanel::PlanetPanel: planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1322
SidePanel::PlanetPanel::PlanetPanel: planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1323
SidePanel::PlanetPanel::PlanetPanel: planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1324
SidePanel::PlanetPanel::PlanetPanel: planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: const planet id: 3517
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 3517
SidePanel::PlanetPanel::PlanetPanel: planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1319
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1319
SidePanel::PlanetPanel::PlanetPanel: planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1320
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1320
SidePanel::PlanetPanel::PlanetPanel: planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1321
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1321
SidePanel::PlanetPanel::PlanetPanel: planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1322
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1322
SidePanel::PlanetPanel::PlanetPanel: planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1323
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1323
SidePanel::PlanetPanel::PlanetPanel: planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: const planet id: 1324
SidePanel::PlanetPanel::PlanetPanel: m_planet_id: 1324
FocusSelector::PrimaryFocusClicked: 0
SidePanel::PlanetPanel::SetPrimaryFocus: FOCUS_FARMING
You need to put the above settings in order to reproduce my crash (or to not). I tested a couple of other configurations with different grade of success (some worked, some not).
That would explain why not many of you have seen this crash. Maybe if I save a crashing universe it would be more reproducible for you.
I hope all this data helps you.
Best regards,
- Ender.
Debian developer
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Problems with FreeOrion in Debian unstable.
I forgot to mention the necessary addition ofJo-Con-El wrote:'Logger().debugStream()' line in FocusSelector.cpp ...
Code: Select all
#include "../util/AppInterface.h"
And I forgot to have you set the log-level to debug.Anyway, the Logger() thing did not work
But whatever... std:cerr works fine, and even if it didn't, I doubt i could find the problem through indirect debugging than tzlaine can find it himseslf.
Re: Problems with FreeOrion in Debian unstable.
Many thanks, Zach. I will verify later if everything is working correctly, and if so, I will probably release the packages for Debian.tzlaine wrote:Fixed in SVN. Thanks for reporting it.
Best regards,
- Ender.
Debian developer
- loonycyborg
- Compilation Expert
- Posts: 219
- Joined: Thu Jul 06, 2006 10:30 pm
- Location: Russia/Moscow