次のコードでは、gccはNSP :: AdminオブジェクトとNSP :: Serverオブジェクトをインスタンス化しません。 これをスキップするだけです。gccでオブジェクトのインスタンス化を強制
int main(int argc, char **argv)
{
// Here we bootstrap google logging
// we also install the signal handler
google::InitGoogleLogging(argv[0]);
google::InstallFailureSignalHandler();
// now we parse the arguments with gflags
google::ParseCommandLineFlags(&argc, &argv, true);
NSP::Admin admin();
NSP::server server();
DLOG(INFO) << "boost io_service run";
NSP::IOService::getIOService().run();
}
パラメータをCTORSに追加すると、それらはインスタンス化されます。 例:
NSP::Admin admin(1);
NSP::server server(1);
私は、GDBでそれらのポイントを破ることができず、ステッピングが、それらをスキップします。 これらの2つのオブジェクトは、自分自身をboost ioサービスに登録し、CTORSでメソッドを呼び出します。
NSPはプロジェクトの名前空間です。
FreeBSDでgcc4.2を使用している場合は、 glog、gflags、およびboost asioです。