diff --git a/src/core/pool_type.hpp b/src/core/pool_type.hpp index 4d20ed1abb..b73323c831 100644 --- a/src/core/pool_type.hpp +++ b/src/core/pool_type.hpp @@ -110,7 +110,7 @@ struct Pool : PoolBase { */ inline Titem *Get(size_t index) { - assert(index < this->first_unused); + assert_msg(index < this->first_unused, "index: %zu, first_unused: %zu, name: %s", index, this->first_unused, this->name); return this->data[index]; } @@ -166,7 +166,7 @@ struct Pool : PoolBase { { if (p == NULL) return; Titem *pn = (Titem *)p; - assert(pn == Tpool->Get(pn->index)); + assert_msg(pn == Tpool->Get(pn->index), "name: %s", Tpool->name); Tpool->FreeItem(pn->index); } @@ -200,7 +200,7 @@ struct Pool : PoolBase { * memory are the same (because of possible inheritance). * Use { size_t index = item->index; delete item; new (index) item; } * instead to make sure destructor is called and no memory leaks. */ - assert(ptr != Tpool->data[i]); + assert_msg(ptr != Tpool->data[i], "name: %s", Tpool->name); } return ptr; } diff --git a/src/crashlog.cpp b/src/crashlog.cpp index af9adfdfbf..e4cd11ec97 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -172,7 +172,7 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const FontCache::Get(FS_MONO)->GetFontName() ); - buffer += seprintf(buffer, last, "AI Configuration (local: %i):\n", (int)_local_company); + buffer += seprintf(buffer, last, "AI Configuration (local: %i) (current: %i):\n", (int)_local_company, (int)_current_company); const Company *c; FOR_ALL_COMPANIES(c) { if (c->ai_info == NULL) { diff --git a/src/os/unix/crashlog_unix.cpp b/src/os/unix/crashlog_unix.cpp index 175eb7c534..d8f95908b4 100644 --- a/src/os/unix/crashlog_unix.cpp +++ b/src/os/unix/crashlog_unix.cpp @@ -206,6 +206,8 @@ class CrashLogUnix : public CrashLog { } buffer += seprintf(buffer, last, "\n"); + close(pipefd[0]); /* close read end */ + int status; int wait_ret = waitpid(pid, &status, 0); if (wait_ret == -1 || !WIFEXITED(status) || WEXITSTATUS(status) != 0) { diff --git a/src/vehicle.cpp b/src/vehicle.cpp index a56bccd04c..251d48fcef 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -826,6 +826,8 @@ void Vehicle::PreDestructor() { if (CleaningPool()) return; + SCOPE_INFO_FMT([this], "Vehicle::PreDestructor: %s", scope_dumper().VehicleInfo(this)); + if (Station::IsValidID(this->last_station_visited)) { Station *st = Station::Get(this->last_station_visited); st->loading_vehicles.remove(this);