タグ

gccとc++に関するHoriuchi_Hのブックマーク (5)

  • tutorialog » 動的クラスロードによる簡易プラグインアーキテクチャーについて

    動的クラスロードによる簡易プラグインアーキテクチャーについて January 5, 2007 Posted by butcher in : Uncategorized, C, C++ , trackback 最近のソフトウェアではプラグインアーキテクチャーが広く普及しています。 今回は、プラグインアーキテクチャーをC++によって実現する方法について説明します。 そもそもプラグインアーキテクチャーとは、ApacheやEclipse、Firefox等のように、プラグイン(モジュール)によって機能の拡張を(比較的簡単に)行える仕組みのことを言います。一般的には、体のコードを修正せずに機能の拡張が行えるので、それによりソフトウェアの拡張性が高くすることができます。 ここでは、ApacheのようにDSOを追加することによって機能を拡張する仕組みをC++で作ろうと思います。 実際に作るもの

  • gccの名前のデマングル

    GCCのtype_infoのname()は、name manglingされたままの文字列を返す。読みにくいこと極まりない。 しかたがないので、Demanglingしてやることにする。 #include <cxxabi.h> class Demangle { private : char * realname ; public : Demangle( std::type_info const & ti ) { int status = 0 ; realname = abi::__cxa_demangle( ti.name(), 0, 0, &status ) ; } Demangle( Demangle const & ) = delete ; Demangle & operator = ( Demangle const & ) = delete ; ~Demangle() { std::f

  • gccにおけるatomic操作命令の個別関数

     gccとVC x86/x64環境で開発する上で, gccとVCはどちらも非常に優れたC/C++コンパイラです. ただLinuxWindowsのどちらの環境でも動作するようなC/C++コードを書くためには, gccとVC, およびそれらが動作するOSの違いが問題になることがあります. ここではそれらの違いについてまとめていきたいと思います. なお説明を簡単にするためにマクロを多用していますが実際には可能なら別の手段をとるか, 名前がぶつからないような命名規則に則ったマクロ名をつけることをお薦めします. 対象 定義済みマクロ 有用なマクロ コンパイルオプション 演算子の代替表現の抑制 日語のコメント 型 pragma attributeとdeclspec ファイル入出力 テキストとバイナリ 巨大なファイル static変数の初期化 snprintf 例外ハンドラ intrinsic関数

  • tracef - function call tracer

    このページは書きかけです。 hogetraceという名前はあんまりなので自重してtracefに変更しました。 TOC 概要 実行例 動作環境 (OS) ダウンロード ビルド環境 ビルド手順 解析可能なプログラム スクリーンショット forkするプログラムの解析 execするプログラムの解析 再帰 マルチスレッド みんなだいすき例外スロー mainの前に呼ばれる関数 制限事項 コマンドラインオプション 仕組み (つぶやき) 類似ツール 概要 hogetrace tracefは、Linux向けの「関数コールトレーサ」です。 自作関数の先頭と末尾にも0xCCを仕掛けるようにしたptraceベースのltraceもどきです。おわり。 ディストリビューションに標準で含まれているltraceコマンドに似ていますが、次のような特徴・相違点があります。 DSO(DLL)内のライブラリ関数の呼び出しだけでなく

  • http://d.hatena.ne.jp/buchake/20070705

    Horiuchi_H
    Horiuchi_H 2007/07/07
    おぉ!こんなオプションがあったとは。今度使ってみよう。
  • 1