/* module handling */
-/* Copyright (c) 2006-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2006-2022. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "simgrid/config.h"
#include "simgrid/sg_config.hpp"
#include "src/internal_config.h"
-#include "src/xbt_modinter.h" /* prototype of other module's init/exit in XBT */
#include "xbt/config.hpp"
#include "xbt/coverage.h"
#include "xbt/dynar.h"
#include "xbt/misc.h"
#include "xbt/module.h" /* this module */
#include "xbt/sysdep.h"
+#include "xbt/xbt_modinter.h" /* prototype of other module's init/exit in XBT */
#include <cmath>
#include <cstdio>
int xbt_initialized = 0;
simgrid::config::Flag<bool> cfg_dbg_clean_atexit{
"debug/clean-atexit",
- {"clean-atexit"},
"Whether to cleanup SimGrid at exit. Disable it if your code segfaults after its end.",
true};
simgrid::xbt::install_exception_handler();
- simgrid::xbt::binary_name = argv[0];
+ if (*argc > 0)
+ simgrid::xbt::binary_name = argv[0];
for (int i = 0; i < *argc; i++)
- simgrid::xbt::cmdline.push_back(argv[i]);
+ simgrid::xbt::cmdline.emplace_back(argv[i]);
xbt_log_init(argc, argv);
}