2016-12-08 15 views
0

mongodbのソースコードをコンパイルしました。私はmongodをデバッグしたい。私は質問に会った。 db.cppにブレークポイントを設定できますが、request.cppにブレークポイントを設定することはできません。私はそれを理解していない。 /home/john/MongoDB2.6.12/mongodb-src-r2.6.12はプロジェクトディレクトリ、ディレクトリにはsrcディレクトリ、SConstructファイルなどがあります。デバッグmongodのブレークポイントが失敗しました。 "src/mongo/s/request.cppという名前のソースファイルがありません"

(gdb) set args --dbpath /home/john/MongoDB2.6.12/mongodb-src-r2.6.12/db_path/ 
(gdb) pwd 
Working directory /home/john/MongoDB2.6.12/mongodb-src-r2.6.12. 
(gdb) directory src 
Source directories searched: /home/john/MongoDB2.6.12/mongodb-src-r2.6.12/src:/home/john/MongoDB2.6.12/mongodb-src-r2.6.12:$cdir:$cwd 
(gdb) break src/mongo/db/db.cpp:997 
Breakpoint 1 at 0xe3e365: file src/mongo/db/db.cpp, line 997. 
(gdb) break src/mongo/s/request.cpp:87 
No source file named src/mongo/s/request.cpp. 
Make breakpoint pending on future shared library load? (y or [n]) n 

注: 1. db.cppはSRC /モンゴ/ DB /に属します。 2. request.cppはsrc/mongo/s /に属しています。

答えて

0

ルートSConscriptを見ると、mongosLibraryFilesのrequest.cppが表示されます。そのブレークポイントにヒットしたい場合は、mongodの代わりにmongosをデバッグする必要があるようです。

+0

rakai私はあなたの意見に同意します。しかし、mongdはリクエストに応じる必要があります。どのようにrequest.cppプロセス(...)でブレークポイントを設定しますか? –

+0

mongosライブラリが将来ロードされる場合、ブレークポイントを保留として設定することができます( 'n'の代わりに' y'を入力します)が、もしそうなら、私は分かりません。 –

+0

よろしくお願いいたします。 –

関連する問題