[cppll:2268] <tips> c++filt (was: CppUnit: TestSuite generation)
- Subject:
- [cppll:2268] <tips> c++filt (was: CppUnit: TestSuite generation)
- From:
- FUKUDA Fumiki <ffukuda@...>
- Date:
- Wed, 03 Apr 2002 12:51:15 +0900
- X-Mailer:
- WeMail32[1.42] ID:NTES00
- Message-Id:
- <200204030351.g333p6H9007587‐at‐tmg01.ntes.nec.co.jp>
- In-Reply-To:
- 2267
επιστημηです。
--- "[cppll:2267] Re: 夢のお告げ (CppUnit: TestSuite generation)" / Shin'ya MORINO / 2002/04/03 11:52:10 +0900 ---
>>cygwin/c++: nm ATest.o | c++filt | grep ::
>>
>> 00000020 T ATest::_privateOne(void)
>>...
>とーぜんなのでしょうが、わたしんとこ(RedHat7.2)も、きれいにできました。
>こんなこと、できたんっすねー。
># c++filt って、こういう風につかうんですね。知らなかった。
'おばぁちゃんの知恵袋'でしょ? > c++filt
# '近頃の若いもんはJavaしか書けんのかのぅ...' とかいいながら
# telnet越しにviとcshでC++コードを書くおばぁちゃん...いないかなぁ
異なるシグニチャをもつ関数を別物として扱うため、
コンパイラは関数名(シンボル)を書き換えます。
# この処理をmangle:'マングる'と申します。ホント。
たとえばg++では、ATest::testOne() を _testOne__5ATest とします。
# これが nm の生出力
c++filt は'マングられた'シンボルを元の(ソースでの)シグニチャに
戻してくれます。
# これをdemangle:'デマングる'と申します。ホントだってば。
-----:-----:-----:-----:-----:-----:-----:-----:-----:-----
FUKUDA (episteme) Fumiki -- magical, but never a magic...
--- "[cppll:2267] Re: 夢のお告げ (CppUnit: TestSuite generation)" / Shin'ya MORINO / 2002/04/03 11:52:10 +0900 ---
>>cygwin/c++: nm ATest.o | c++filt | grep ::
>>
>> 00000020 T ATest::_privateOne(void)
>>...
>とーぜんなのでしょうが、わたしんとこ(RedHat7.2)も、きれいにできました。
>こんなこと、できたんっすねー。
># c++filt って、こういう風につかうんですね。知らなかった。
'おばぁちゃんの知恵袋'でしょ? > c++filt
# '近頃の若いもんはJavaしか書けんのかのぅ...' とかいいながら
# telnet越しにviとcshでC++コードを書くおばぁちゃん...いないかなぁ
異なるシグニチャをもつ関数を別物として扱うため、
コンパイラは関数名(シンボル)を書き換えます。
# この処理をmangle:'マングる'と申します。ホント。
たとえばg++では、ATest::testOne() を _testOne__5ATest とします。
# これが nm の生出力
c++filt は'マングられた'シンボルを元の(ソースでの)シグニチャに
戻してくれます。
# これをdemangle:'デマングる'と申します。ホントだってば。
-----:-----:-----:-----:-----:-----:-----:-----:-----:-----
FUKUDA (episteme) Fumiki -- magical, but never a magic...
▼ スレッド
- 2259: 昨晩イヤな夢をみました。 足りないメソッドがあるらしい。すべてのメソッドきちんと 実装し FUKUDA Fumiki
- ├2263: おためし。 class ATest { public: void testOne(); void testTwo(); private: void privateOne(); void privateTwo(); }; void ATe FUKUDA Fumiki
- │├2264: 追加。BC++でもやってみゆ。 win2k/bc++: tdump -oiCOMDEF ATest.obj Name: 4: 'ATest::privateTwo()' virtual(_TEXT) Length FUKUDA Fumiki
- │├2267: とーぜんなのでしょうが、わたしんとこ(RedHat7.2)も、きれいにできました。 森野慎也 mailto:smorin Shin'ya MORINO
- ││└2268: 異なるシグニチャをもつ関数を別物として扱うため、 c++filt は'マングられた'シンボルを元の( FUKUDA Fumiki
- ││ └2271: でまんぐらず、でまんぐります、でまんぐるとき...... って、もーいーってば。 >> 自分 そーい Shin'ya MORINO
- │└2269: ruby/perl使いのアナタならあとは'ちゃっちゃかちゃー'と キーボード叩いてはい完成なのでしょ FUKUDA Fumiki
- │ └2270: テスト中毒患者でRubyに興味があるなら 「Rubyを256倍使うための本 極道編」 というか、RubyはOO使 tsujit‐at‐ntes.nec.co.jp
- │ └2272: うん、渋川さんの TestRunnerFactory.rb はさくっと理解できたです。 ズブの素人ながら、rubyの素性 FUKUDA Fumiki
- │ └2297: http://www.rubycookbook.org/ みたいなページもありますが、とにかく書いて みるのがいいと思います takuma ozawa
- │ └2300: 御意。rubyに教えてもらうのが一番の近道やと思います。 んでもね、ともあれ'この一冊'てなオ FUKUDA Fumiki
- │ ├2301: から(笑) それ以外にも Windows 上に Linux のイメージを作るようなものもあ ったと思ったんだけど DENCHU
- │ │├2302: Linux MLD6 ( http://www.mlb.co.jp/ ) のことではないでしょうか。 Tatsuya Asano
- │ ││└2305: これだ!!!ありがとうございます>浅野さん epsiteme さんにはこっちがお薦め? パーティションコマ DENCHU
- │ ││ ├2309: やったことあり。 ちょっと、ドキドキするけど、できました。 森野慎也 mailto:smorino‐at‐datamark.co.jp Shin'ya MORINO
- │ ││ └2314: ほほー、そーゆーのがあるですか。いーかも。 ただ僕はご存知の通り処理系フェチのライブラ FUKUDA Fumiki
- │ │└2304: あるいは現内容を壊さずにパーティションを切れる賢いツールなんか あるといとうれし。 FUKUDA FUKUDA Fumiki
- │ ├2303: "よりよい" だからフツーに使うには cygwin で充分なのでは? (^^; cygwin 上から使うほうがなにかと Wraith the Trickster
- │ │└2306: でもcygwinからだとパス指定とかちょっと面倒じゃないですか? どっちかと言うと、Emacs(WinならMed tsujit‐at‐ntes.nec.co.jp
- │ │ └2308: 賛成。 森野慎也 mailto:smorino‐at‐datamark.co.jp Shin'ya MORINO
- │ │ └2310: そうなの? ...ぢつは ruby 使ったことないもんで。 (^^ゞ □■□■ Wraith the Trickster □■□■ ■□ Wraith the Trickster
- │ │ ├2312: あひる
- │ │ │└2313: Windows で Perl と WZ を使う私はもっと少数派(T_T) DENCHU
- │ │ │ ├2315: おいらもいまんとこPerl派だけど、Tietewさんから個人的に聞いた話 で、ruby派に寝返ろうかと考 Wraith the Trickster
- │ │ │ └2316: あひる@どんどんMLとは無縁な話にです。 あひる
- │ │ └2319: Shin'ya MORINO
- │ ├2311: 僕は256倍とdRubyの本しか持っていないのですが、やはり http://www.pearsoned.co.jp/washo/prog/wa_pro44-j.html takuma ozawa
- │ └2327: 趣味で、実際にLinuxとcygwinの両方でソースコード互換なC++クラスライブラリを 作っているんで junichi.katou
- ├2273: class X : public CppUnit::TestCase { public: void test_1(); void test_2(); static CppUnit::Test* suite(); }; のように、test FUKUDA Fumiki
- │└2274: あひる
- │ ├2275: Regex++ に限っていえば、libs/regex/build に bc55.mak ちう makefileがあるんで、 make -f bc55.mak で一発おっ FUKUDA Fumiki
- │ └2283: [cppll:2173]で述べたとおりBCB6ではテンプレート引数のバグのため boost::functionが使えないのでboost: Takeshi Mouri
- │ └2289: あひる
- │ └2292: パースでエラってます。(「>」が見つからないとか言ってくる) 新機能ヘルプによると、この辺 Takeshi Mouri
- └2276: おもしろいですねえ。 なんか汎用的に出来そうな気もします。 ・(VCの話ですけど)コンパイル Akihiko Matuura
- └2277: ふふふ、さてはいまだに リファクタリング・ブラウザ に未練があるな? ^^; うーむ、PCR(Post Compil FUKUDA Fumiki
- └2281: はは、ばればれ (^^;; なるほど、、、。 何れにしても、Methodクラスなんてどう実装したらいいか Akihiko Matuura
- └2284: 森羅万象の頂点に立つ Object こさえて、 引数は Object*の集合(これもやっぱりObject)、 戻りはObject FUKUDA Fumiki