libconfigを使用して自分のプログラムの構成ファイルを作成しようとしています。完全に動作する(ローカルスコープオブジェクト)シナリオと、失敗するシナリオ(グローバルスコープオブジェクト)の2つのシナリオがあります。私は両方が同じオブジェクト(ちょうど異なる範囲)を作成する定義であるという私の理解であるので、他が成功している間に1つが失敗する理由を理解しようとしています。グローバルオブジェクトを使用するとクラッシュしますが、ローカルオブジェクトを使用するとクラッシュしません
1番目(動作しません):グローバルスコープでConfigオブジェクトを定義します。次に、ConfigオブジェクトのreadFileを呼び出します。ここでプログラムがクラッシュします。
#include <libconfig.h++>
libconfig::Config cfg;
int __attribute__((constructor)) Init()
{
cfg.readFile("/home/jalius/csgo-internal/hack.cfg");
}
2番目(動作中):ローカルのConfigオブジェクトを定義し、それに対してreadFileを呼び出します。
#include <libconfig.h++>
int __attribute__((constructor)) Init()
{
libconfig::Config cfg;
cfg.readFile("/home/jalius/csgo-internal/hack.cfg");
}
ランタイムエラーとは何ですか? – Yashas
どのように情報を抽出するのですか?この共有ライブラリはdlopenで別のプロセスに注入されます。私はプロセスでgdbを開いて、メインスレッドがlibconfig.cの中でSIGSEGVを受け取ったことを確認します(私はデバッグシンボルを持っていません)。 –
「SIGSEGV」信号はセグメンテーションフォルトを表します。 – Yashas