Mona/C++の例外とRTTI/99.殴り書き


Mona/C++の例外とRTTI

作業用のサンドボックス。ページ名が思い付いたり作業の進捗に従って適切な行き先が見つかれば内容を移動。

TODO(早めにケリ付けたい系)

バイナリの配布(例外付きでも一応GPLなのでソース込みで配布可能な場所が必要)

ザ・殴り書き・オブ・殴り書き

使い方の説明(もっと整理した上で開発環境構築ガイドにでも移行)

ビルド用ヘッダ、ライブラリの処分

Mona開発用ヘッダ、ライブラリの設置

Mona用specsの作成

<作ったgcc> -dumpspecs > specs

てすと

将来の課題(後回しにする系)

throwされるもの以外の例外

MinGW/Cygwin用の実装

Monaでどう対応するか

コールバックからの例外

問題

対処案

  1. コールバックをとるAPIコードをDWARF例外情報付きでコンパイルする
    • そのAPIコードをコンパイルする段階で例外サポートが使えるようなライブラリ構成じゃないといけない
  2. 諦めて試合終了

--enable-threadsサポート

重箱の隅をつつく系の気が向いた時にやればいいような些事な要確認リスト

やってる内に例外RTTIと(あんまり)関係ないことになった話のメモ

GetModuleHandle/dlopen相当の実装

  1. PEの扱いを別ライブラリに分離し、共通のコードベースでpe_serverとmonapiだか他の何かしらのヘルパーライブラリだかの両方にリンク
  2. pe_serverにdlopen相当の機能を実装、monapiだか他の何かしらのヘルパーライブラリがpe_serverと通信して動かす
    • 起動済みの他のプロセスのアドレス空間にpe_serverは干渉できる?

elf_server

それで結局ELFなのかPEなのか

最下層ライブラリ

ブートシーケンスの変更

混乱が混乱を呼ぶ混みいった事情のメモ

正規のビルド手順は以下

  1. gccのmake all-host install-host
  2. 作ったgccでmona側ライブラリのビルド
  3. 作ったgccとmona側ライブラリでlibgcc、libsupc++のビルド

資料系

gccのPEサポートに関してのメモ

DWARF2 unwinding

今の(2011.Sep.23)Monaをソースからビルドして動かす際のメモ

MENU

now: 1

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2532, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2011-10-11 (火) 10:07:08 (2417d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.074 sec.