私は1つのマルチマップを作成ErrorMap
し、このような値を挿入しました
map<char*,char*> ErrorMap;
ErrorMap.insert(map<char*, char*>::value_type(*l_itrList, ErrorMsg1));
この後、いくつかのリクエストを処理するために、このマップを 3 回読み込んでいます。削除する前にマップを印刷すると、最初の 2 つのペアの値が破損し、残りの値は問題ありません。
ここでコアダンプを取得しています。
読み取り中にこれらの値がどのように影響したかの詳細を取得できますか? 明示的に削除するまでマップを保存できるようにするためのソリューション。
私のログ
mapItrMov4.first (€J+) mapItrMov4.second (無効なサービス要求)
mapItrMov4.first (hK+) mapItrMov4.second (無効なサービス リクエスト)
mapItrMov4.first (最初) mapItrMov4.second (InvalidServiceRequest)
....
そしてその後は大丈夫です
gdb バックトレース
(gdb) ところで
/lib/tls/i686/libc.so.6 からの raise () の 0x001c2cae
/lib/tls/i686/libc.so.6 からの中止 () で 0x001c42b0
/lib/tls/i686/libc.so.6 からの __libc_message () の 0x001f2469
/lib/tls/i686/libc.so.6 からの _int_free () の 0x001f7ef8
/lib/tls/i686/libc.so.6 からの free () の 0x001f824f
/usr/lib/libstdc++.so.6 からの演算子 delete () の 0x004dbfd1
/usr/lib/libstdc++.so.6 からの演算子 delete[] () の 0x004dc01d
amsAccMgmtReqHandler::opServicesReqHandler の 0x080ab607 (this=0x95b91dc、m_Response=0x95ba588 "68287
amsAccMgmtReqHandler::handleRequest の 0x080b35c4 (this=0x95b91dc, a_cpRequestStr=0x2187820 "1< MSISDN>10200007358995309999900000000599999000"..., a_cpResponseStr=0x95ba588 "68287
amsWorker::run の 0x081344d5 (this=0x95b91d0)
workerThread::ThreadProc の 0x081cef83 (p=0x959f234)
/lib/tls/i686/libpthread.so.0 からの start_thread () の 0x003ca144
/lib/tls/i686/libc.so.6 からのクローン () の 0x00258a7e