0

Linux で pstack {pid} を実行すると、ときどき ?? と表示されます。いくつかの記録のために。その理由は何ですか?最適化するだけの場合、実際の関連コードをどのように知ることができますか?

#0  0x00000037d620b3dc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00000000008c83db in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) ()
#2  0x0000000000d95f7b in mongo::SimpleRWLock::lock_shared() ()
#3  0x00000000008bce47 in mongo::Lock::DBRead::lockOther(mongo::StringData const&) ()
#4  0x00000000008bfc86 in mongo::Lock::DBRead::lockDB(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#5  0x00000000008c1eb0 in mongo::Lock::DBRead::DBRead(mongo::StringData const&) ()
#6  0x000000000081fa35 in mongo::Client::ReadContext::ReadContext(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
**#7  0x0000000000b852bb in ?? ()**
#8  0x00000000008ab646 in mongo::CmdServerStatus::run(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mongo::BSONObj&, int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, mongo::BSONObjBuilder&, bool) ()
4

1 に答える 1

0

なぜ1つのレコードだけが「??」と表示されるのかは私にもわかりませんが、「??」が何であるかを知るための解決策を見つけました。この場合を表します。

以前のスタックを本番環境で入手しました。DEV 環境でトラフィックを実行します (DEV では、-ggdb オプションでコンパイルし、--nostrip でインストールします)、次のスタックを取得しました。

Thread 2 (Thread 0x7fb112c27700 (LWP 29881)):
#0  0x0000003af460b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00000000008661cb in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) ()
#2  0x0000000000d093e3 in mongo::SimpleRWLock::lock_shared() ()
#3  0x00000000008e0cfb in mongo::Lock::DBRead::lockOther(mongo::StringData const&) ()
#4  0x00000000008e2701 in mongo::Lock::DBRead::lockDB(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#5  0x00000000008e3557 in mongo::Lock::DBRead::DBRead(mongo::StringData const&) ()
#6  0x0000000000859d00 in mongo::Client::ReadContext::ReadContext(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>
, std::allocator<char> > const&) ()
#7  0x0000000000b5a6c0 in mongo::(anonymous namespace)::RecordStats::generateSection(mongo::BSONElement const&) const ()
#8  0x00000000008c4934 in mongo::CmdServerStatus::run(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mongo::BSONObj&, int, std::basic_string<char, std::char_tr
aits<char>, std::allocator<char> >&, mongo::BSONObjBuilder&, bool) ()
#9  0x00000000008ef0d4 in mongo::_execCommand(mongo::Command*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mongo::BSONObj&, int, std::basic_string<char, std
::char_traits<char>, std::allocator<char> >&, mongo::BSONObjBuilder&, bool) () 
于 2013-09-21T13:31:48.987 に答える