トップページ⇒tech
80コメント27KB

【支援】ソースコードリーディング【ツール】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/05/26(月) 15:57:16
無かったので立てました
0002デフォルトの名無しさん2008/05/26(月) 16:06:40
2
0003デフォルトの名無しさん2008/05/26(月) 18:07:51
せめてツール一覧くらい無いことには
0004デフォルトの名無しさん2008/05/26(月) 18:17:08
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
0005デフォルトの名無しさん2008/05/26(月) 18:23:45
DoxygenいいよDoxygen
0006デフォルトの名無しさん2008/05/26(月) 18:24:29
ソース整形ツールはリーディング支援ツールに入りますか?
0007デフォルトの名無しさん2008/05/26(月) 19:56:33
GNU Global
スレ的にはこんなのか?
0008デフォルトの名無しさん2008/05/26(月) 20:04:30
DQN男の家族消えろ DQN男の親消えろ DQN男の子供消えろ DQN男の親戚消えろ
DQN男の家族消えろ DQN男の親消えろ DQN男の子供消えろ DQN男の親戚消えろ
DQN男の家族消えろ DQN男の親消えろ DQN男の子供消えろ DQN男の親戚消えろ
DQN男の家族消えろ DQN男の親消えろ DQN男の子供消えろ DQN男の親戚消えろ
ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
死ぬとき このレスの事思い出してから地獄へ行けよ
ニヤ(・∀・)ニヤ(・∀・)
0009デフォルトの名無しさん2008/05/26(月) 20:06:30
HTML化したり図を作るソフト、検索サイトがいくつか見つかったのでどうぞ
SourceNavigator  ttp://sources.redhat.com/sourcenav/
DDD  ttp://www.gnu.org/software/ddd/
ctrace  ttp://www.vincente.org/ctrace
global  ttp://www.gnu.org/software/global
doxygen  ttp://www.stack.nl/~dimitri/doxygen/
krugel  ttp://www.krugle.com
0010デフォルトの名無しさん2008/05/26(月) 20:18:24
リーディングってどういうことですか?
0011デフォルトの名無しさん2008/05/26(月) 20:44:38
ctags (C)
cxref (C)
code browser (いろんな言語) ttp://www.moongift.jp/2008/05/code_browser/
project analyzer (VB, VB.NET, VBA 製品) ttp://www.aivosto.com/project/project.html

最近は、一番下の奴使いまくり。
0012デフォルトの名無しさん2008/05/26(月) 20:52:55
何気に良スレ。
でも試す時間がない〜
0013デフォルトの名無しさん2008/05/26(月) 22:11:25
自分では試してないけど、これも追加 plz
OpenGrok
ttp://opensolaris.org/os/project/opengrok/
0014デフォルトの名無しさん2008/05/26(月) 23:19:27
良スレ期待age

doxygenしかつかったことなかったなー
0015デフォルトの名無しさん2008/05/26(月) 23:32:10
Doxygen使うならGraphvizも入れとかんと
0016デフォルトの名無しさん2008/05/26(月) 23:34:52
ctagsバリバリ使ってて役に立ってるが、
Win32 APIのC関数宣言が検出されないのが唯一の欠点
0017デフォルトの名無しさん2008/05/27(火) 00:38:15
http://www.geocities.com/jadoxa/global/index.html
globalのwin32版が最近更新されなくて困る。試してないけど、cygwin使わないでビルドできる?

あと、高くて買えないslickedit使ってる人いる?
0018デフォルトの名無しさん2008/05/27(火) 01:18:49
>>17
体験版あんじゃないの?>Slickedit

Radiumの中の人がVimから移行してたな
0019デフォルトの名無しさん2008/05/28(水) 03:46:36
関数の呼び出し関係を把握したいだけなら関数ツリーがシンプルで良かった
0020デフォルトの名無しさん2008/06/01(日) 00:08:02
解析ツールじゃなくて

ソースコードに直接コメントつけらるんじゃなくて、
表示するときだけソース上にコメントつけられるようなのないかな?

Subversionとか対応で、更新してもコメントが残るようなやつ

そういうのがほしいとおもってるのはおれだけ?
0021デフォルトの名無しさん2008/06/01(日) 02:19:01
ソースコードをUMLだけじゃなく
フローチャートでリバースエンジニアしてくれるの無いのかしら
0022デフォルトの名無しさん2008/06/01(日) 09:17:27
>>20
そう言うエディタとビューワー作ればいいだけじゃないのか?

簡単にやるには例えば特定の文字列から始まるコメントはその特殊コメントと
みなして特定の操作をすると見えるようにするとか。

>>21
いくらでもあるけど、コードを直接見るのと対して変わらないからほとんど役
に立たない。

コードの意図を理解してまともなフローチャートにするツールがあるなら俺も
欲しい。
0023デフォルトの名無しさん2008/06/01(日) 10:10:33
>>22

いや プログラマじゃないから
ということは ないのかな
Eclipseのプラグインあたりでないかと さがしたけどなかった
0024デフォルトの名無しさん2008/06/01(日) 10:12:17
すま 途中送信

イメージ的には行対応の付箋でもいいんだけど
その付箋をVer.up時にも自動調整してくれるみたいな
0025デフォルトの名無しさん2008/06/01(日) 10:16:45
#if 0 でコメントアウト(?)してある所は自動的に対象から外してほしいな、HTML化するときは
0026デフォルトの名無しさん2008/06/01(日) 14:39:53
>>23-24
> いや プログラマじゃないから

そんな奴が何でこんなスレにいるのかと...

> その付箋をVer.up時にも自動調整してくれるみたいな

自動調整の意味がわからん。

ソースの行を削除/追加しても追随しろと言うことか?

付箋がついてる行が修正/削除された時に付箋はどうすればいいんだ?
0027デフォルトの名無しさん2008/06/01(日) 20:34:59
>>26

趣味だよ
たまに知り合いから仕事もらったりあるけど

オープンソース形のコードを読みたいと思ったのが理由なんだけどね


>> その付箋をVer.up時にも自動調整してくれるみたいな
>ソースの行を削除/追加しても追随しろと言うことか?

そんな感じ
イメージ的にはファイル比較ソフトとか そんな感じ
競合しない部分はそのままずらす みたいな

それか Subversionでチェックアウトしたときに
コメントがついてるファイルが更新されたら その旨を知らせるアラートがでたりとか

たぶん BTSとかコードレビュー用のシステムがイメージに近い
んだけど ファイル更新されちゃうと全部消えちゃうよね
ローカルに設置するにはけっこう面倒だし
0028デフォルトの名無しさん2008/06/01(日) 21:03:33
>>27
それならソースに直接コメントとして書いておけばいいと思う。

元のソースが変更されたら、Subversion のマージ機能で更新かければ、
変更されてない所はそのまま維持できるし。

変更された部分はどのみちコメントも変更が必要なケースがほとんど
だろうからね。
0029デフォルトの名無しさん2008/06/01(日) 23:07:15
>>28

アドバイスありがとう

そうか マージでやればいいのか

SVNリポジトリはオンライン上にあって
それをローカルにチェックアウトしてるんだ
(Eclipse+Subclipse)

でも、コメント直書きしちゃうと
ローカルのほうが最新版になっちゃうこともあるよね?
それのうまい解決方法が思いつかないんだけど、一度試してみる
0030デフォルトの名無しさん2008/06/01(日) 23:10:35
ローカルが最新版というか

コメント書いちゃうと オンラインのリポジトリで更新があった場合に
更新箇所を調べるのが大変になる
って感じか

マージってほとんど使ったことなかったから
とにかく一度試してみるthx.
0031デフォルトの名無しさん2008/06/02(月) 00:32:51
>>29-30
> ローカルのほうが最新版になっちゃうこともあるよね?

自分用のコピーを作る。

詳しくは、Subversion ブランチ あたりでググッてくれ。
0032デフォルトの名無しさん2008/06/02(月) 00:35:41
とりあえず

1.オンラインのリポジトリ(オープンソースの本家)からローカルにエクスポート
2.エクスポートしたファイルを ローカルのsvn://で接続できるリポジトリにインポート
3.Eclipseでローカル(2.)のリポジトリをプロジェクトとしてインポート
  (= Eclipseのワークスペースにチェックアウトされる)

4.ソースにコメントつけたらローカル(2.)のリポジトリにコミット

5.たまに、オリジナルのリポジトリとローカル(2.)のリポジトリをマージするようにする
6.マージした後は、Eclipse(3.でチェックアウトしたやつ)をローカルリポジトリで更新

これでできそうだ

ただ、Subclipseだと、 http://〜 なリポジトリとはマージできないみたいなので、
マージするためには、本家からエクスポートして、一旦別のリポジトリ作って、
それとローカル(4)リポジトリでマージしないとだめかも

でもずっと悩んでいたことができそうだよ
これなら ローカルのソースに直接コメントいれつつ、常に最新の状態に保てるね
wiki使おうかと思ってたけど この方法が一番わかりやすいし楽だ

>>28 に感謝!
0033デフォルトの名無しさん2008/06/02(月) 01:40:15
ありゃ マージだと コメント消えちゃうな orz

ということで マージじゃソースに直接コメントいれるのは うまくないようだ

インポートしたリポジトリと ファイル比較 で手作業でマージするのがよさそうかな
0034デフォルトの名無しさん2008/06/02(月) 21:44:21
>>33
> ありゃ マージだと コメント消えちゃうな orz

どういう状況かわからんけど、Subversion 使ってて勝手に消えるなんて
普通はありえないよ。

(>>28 にも書いたけど。) もちろんローカルにコメントを追加した行と
同じ行がオリジナル側で変更されていたらどっちかを選択するしかない
だけど、そう言う状況なら追加したコメントも変更する必要が多いから、
オリジナル側を選択して後からコメントを付け直せばいい。

まあ、コメントつけた行に spell ミスとかがあって、それを修正された
らコメント入れ直しになっちゃうけど、それぐらいは今のところしょう
がないとあきらめるしかないと思う。
0035デフォルトの名無しさん2008/06/02(月) 23:01:51
試し方がわるかったかなあ
もうちょい調べてやってみる

といっても svnサーバ同士じゃないとできないみたいなんで
(オプソの本家のリポジトリが svn:// じゃなくて http:// …)
最悪 リポジトリからのチェックアウト時に ファイル比較モードで半手動でマージでもよさそうだ

コードリーディングにはなかなかいいね
0036デフォルトの名無しさん2008/07/08(火) 17:39:51
保守
0037デフォルトの名無しさん2008/07/08(火) 20:23:57
cscope + emacsすごい便利。
0038デフォルトの名無しさん2008/07/17(木) 18:17:21
ベクターにもいろいろ掲載されているみたいだが
どんなもんだろう
0039デフォルトの名無しさん2008/07/22(火) 21:29:28
質問です。
現在、大量のコメントアウトや、実行されないメソッドを含む
ソースコードを修正する必要にせまられております。言語はJavaです。
そこで、Javaの指定したメソッド以下のメソッド呼び出しを再帰的に調べて、
全ての処理される可能性のあるステップを一つのファイルに書き出してくれるツールを探しています。
そういうツールをご存知ありませんでしょうか。

ツールの出力を煮るなり焼くなりしてなんとかシーケンス図ノヨウナモノを作ったりして、
ソースを理解したい……
0040デフォルトの名無しさん2008/07/22(火) 21:57:50
ベタだが、関数の先頭とケツに、トレースログを入れ込んで、
実行ログをとった方がはやくないか?
0041デフォルトの名無しさん2008/07/22(火) 23:06:21
>>39
Java ソース解析 でググレばいろいろでてくんじゃね。

>>40
そもそも、ソースの仕様すらよくわからんのに全ての関数/メソッドを
呼び出すようなテストデータ作るのはすごく大変だと思うけど。
0042デフォルトの名無しさん2008/07/23(水) 02:33:29
>>39
それが本当に大量なら、例えば弊社で半年規模で請け負うような仕事になると思われます。
動的解析やテストケースを作る支援ツールに頼っても結構な金額しますが。
0043デフォルトの名無しさん2008/07/23(水) 07:58:46
スクリプト言語でやっつけ解析すればいいんじゃない?
0044デフォルトの名無しさん2008/07/23(水) 08:06:52
何言ってるの。静的解析でいいならJavadocがあれば事足りるでしょ。
0045デフォルトの名無しさん2008/07/23(水) 10:44:33
んー
トレースログならAspectJとか
0046デフォルトの名無しさん2008/07/23(水) 12:39:55
>>44
Docletだっけ?
単独で静的解析できるツールが作れるなら便利そうだね。
0047デフォルトの名無しさん2008/09/01(月) 19:49:14
VB/VBA用のMZ-Tool使っているひといる?
       ↓
ttp://www.mztools.com/v6/mztools6.aspx
0048デフォルトの名無しさん2008/10/13(月) 20:45:47
保守
0049デフォルトの名無しさん2008/10/14(火) 00:05:46
exuberant ctags
http://ctags.sourceforge.net/

exuberant ctags 日本語対応版
http://hp.vector.co.jp/authors/VA025040/

Supports 34 programming languages!!
0050デフォルトの名無しさん2008/10/25(土) 13:39:09
  
0051デフォルトの名無しさん2008/10/27(月) 08:53:03
日本語のはないの?
0052デフォルトの名無しさん2008/10/27(月) 11:45:17
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1220150877

大手ECサイトのヨドバシドットコムが、サイトリニューアルから大規模な障害を3日間続けているようです。
このようなケースではリニューアルを担当した業者はヨドバシカメラにどれほどの損害賠償を行うのでしょうか?

【ヨドバシカメラ】 ネットサイトをリニューアルしたら表示遅すぎでおわび [10/23]
http://gimpo.2ch.net/test/read.cgi/owabiplus/1224789237/

ヤマダ.com/ビックカメラ.com/ヨドバシ.comを語ろう
http://gimpo.2ch.net/test/read.cgi/kaden/1222787235/

【店員の質】ヨドバシカメラ総合17【落ちまくり】
http://gimpo.2ch.net/test/read.cgi/kaden/1215013408/

補足
どうやら今回のヨドバシドットコムリニューアルはCMS導入が目的で、
キノトロープスリーイントという会社( http://www.k-3int.co.jp/ )が請けたようです。

また、リニューアルの10/21から10/25現在までこの状況ですので、ヨドバシカメラの損失額は
億単位で発生していると言われています。

キノトロープってどうよ?PART4
http://namidame.2ch.net/test/read.cgi/venture/1224762171/
0053デフォルトの名無しさん2008/11/03(月) 13:56:47
少し話の趣旨からずれるかもしれんが、HTMLのリーディンぐで
タグの対応エレメントにジャンプ出来るフリーソフトってないかな?

探したんだけどなかなかなくて。。。
0054デフォルトの名無しさん2008/11/08(土) 12:19:23
ベタにeclipseとかじゃないの?
0055デフォルトの名無しさん2008/11/25(火) 17:07:11
おもしろそうなのに、さびしいスレだ。
とりあえず保守。
0056デフォルトの名無しさん2008/11/25(火) 18:13:42
>>53
ベタにdoxygenじゃねーの?
0057デフォルトの名無しさん2008/11/25(火) 21:14:25
クラスとかを3Dオブジェクトにして
仮想空間でグルグルまわしたりできると楽しそう
コードサーフィンというよりコードダイビング
0058デフォルトの名無しさん2008/11/26(水) 00:35:38
>>57
5分くらいで飽きると思う
0059デフォルトの名無しさん2008/11/27(木) 00:12:23
UMLのクラス図をもっと言語寄りに厳密にして、
クラス図とソースコードをリアルタイムに同期させて編集出来ると良いな。
0060デフォルトの名無しさん2008/11/29(土) 23:13:54
そもそもソースを整形しようという発想が間違い
エディタやビューワで対応すべき
0061デフォルトの名無しさん2008/11/30(日) 00:32:16
>>57
個人的にはコードやダイアグラムの3D表示ってのはすごく期待してる。
ってか、システムの規模がでかくなると、2D表示じゃいくらモニタの解像度が
あっても足りんよ……ってか、そろそろ2D表現だけでがんばるのはつらいと思うぜ。

俺の場合は、コードのデバッグ実行の際に
メソッドの中へステップインするたびに「奥(というか、底の方)へ潜っていく」ように
表示してほしいと思う。スタックトレースが深いと、背景がだんだん暗くなっていったりしてね。
「なんかコレ、スタック深すぎじゃね?」とか直感的に分かったりするよ良いなとか思ったり。

あと、diffをとったりマージしたりする際に
変更前後のソースを「2枚重ね合わせながら」“ここが削られたよ”とか
“ここが書き換えられたよ”“ここはtheirs側をマージしたよ”なんてってのを
表示してくれると嬉しかったり。

>>60
インテンショナルプログラミングな考え方かな?
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

> 空白もソースコード内には格納されない。字下げも表示の際に個々のプログラマが設定したとおりに表示される。
ってところが対応するね。
0062デフォルトの名無しさん2008/11/30(日) 11:33:06
>>61
デバッガは兎も角、diffの3d表示はいいね。
それぞれのファイルを表す面から相違点だけが浮かび上がって上空でリンクしているとか。
微小な変更は低空で、大きな変更は高空にあると尚よしw
0063デフォルトの名無しさん2008/12/01(月) 00:43:10
graphvizが3Dに対応したら近そうだけど
そんな予定があるのかどうか
0064デフォルトの名無しさん2008/12/01(月) 10:49:52
取り敢えず、graphvizで表示するdiffでも作ってみるか。
0065デフォルトの名無しさん2008/12/25(木) 17:48:55
日本のプログラマの大半は規則を好む。
自分がいまやっていること(自分の技量)が規則だと思っている。
支援ツールを使って仕事の効率を上げようなどとは考えない。
だから、中国やインドに負けてリストラされる。
0066デフォルトの名無しさん2008/12/25(木) 19:05:59
チュゴクジンカイカプルヨクナイ
ニポジンヨリチョトダケズウズウシイダケネ
0067デフォルトの名無しさん2008/12/29(月) 10:44:28
訳が分らなくなってきてるね。
0068デフォルトの名無しさん2009/01/03(土) 13:23:58
なんかこんなん見っけた
http://www.u-aizu.ac.jp/~aiguo/ext-projects/ext-provit/indexProvit.html
0069デフォルトの名無しさん2009/01/06(火) 01:10:49
65は一理あるね
0070デフォルトの名無しさん2009/01/20(火) 06:08:04
甲殻機動隊みたいなのよろしく
0071デフォルトの名無しさん2009/01/20(火) 06:34:40
カニ?
0072デフォルトの名無しさん2009/01/20(火) 06:55:09
ああ、そうだが?
0073デフォルトの名無しさん2009/01/20(火) 10:41:34
暴力二男
0074デフォルトの名無しさん2009/01/30(金) 21:24:50
一応保守しとこ
google-code-prettify
ttp://code.google.com/p/google-code-prettify/
0075デフォルトの名無しさん2009/01/30(金) 22:23:52
うんうんこ
0076デフォルトの名無しさん2009/04/13(月) 17:03:45
ヘッダのインクルードツリーを表示したいのだが何かいいのない?
0077デフォルトの名無しさん2009/04/13(月) 22:02:21
そんなのcppに通したものを適当なスクリプト言語でちゃちゃっとやればしまいじゃん……。
0078デフォルトの名無しさん2009/04/13(月) 22:33:50
>>77
絵にするにはそれじゃ足りんからさ
まぁそれしかないならそれでやるよ
0079デフォルトの名無しさん2009/04/13(月) 22:44:46
>>76
つ[doxygen + graphviz]
0080デフォルトの名無しさん2009/04/14(火) 08:41:31
万一仮に76==78だとしたら、ヒューマンコミュニケーションスキルが低すぎると言わざるを得ない。
簡単に言うと日本語でおk
つか>77でおkと思う。
■ このスレッドは過去ログ倉庫に格納されています