(OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—5—process指向错误地址
来源:互联网 发布:淘宝网批发鞋 编辑:程序博客网 时间:2024/05/16 01:23
--------------再接再厉(在CentOS 7没有解决这个问题,现在来解决)
-------------------------------------调试问题5-----------------------------------process指向错误地址
Program received signal SIGSEGV, Segmentation fault.
(gdb) s
Cannot find bounds of current function
(gdb) c
Continuing.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb)
--------------设置断点
break WorkflowListener.cpp:67
s
break bOSProcess.cpp:92
------
break Workflow.cpp:86
break Workflow.cpp:106
break Workflow.cpp:139
break Workflow.cpp:154
------
break Workflow.cpp:106
(gdb) p process
$3 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) p processID
$4 = 0x605e40 "2015-1014-1745-23179-1108168521"
------
break bOSProcess.cpp:20
break bOSProcess.cpp:28
break bOSProcess.cpp:47
break bOSProcess.cpp:147
break bOSProcess.cpp:182
------
break bOSProcess.cpp:28
(gdb) p m_ProcessID
$5 = 4222
break BaseWorkflowEvent.cpp:22 //return _WF->getProcess()->getProcessId();
//_WF->getProcess()返回process(Workflow.cpp:504),
//但是单步进不去getProcessId()()
----------------------------------下面是 具体 找错方法:
break Workflow.cpp:86
break Workflow.cpp:106
break Workflow.cpp:139
break Workflow.cpp:154
break BaseWorkflowEvent.cpp:22
r
s
c
在Workflow.cpp:106停止, 执行 n,然后
(gdb) p process
$19 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) c
22 return _WF->getProcess()->getProcessId();
(gdb) p _WF //这个值正确,因为能够调用getProcess()
$9 = (WorkflowEngine::Criteria::Core::Workflow *) 0x5585d0
(gdb) s
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:504
504 return process;
(gdb) p process //这个值不正确,因为不能够调用getProcessId()
$20 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x558650 <typeinfo for WorkflowEngine::Criteria::Event::WorkflowEvent::RestartedWorkflowEvent>
(gdb) set var process=0x5fe9f0 //修改变量的值
(gdb) p process //修改process的值后,这个值不正确,能够调用getProcessId()
$21 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) s
DataManager::Panorama::WorkflowProcesses::ProcessComponent::getProcessId (this=0x5fea28)
at /opt/cBPM-android/criteria-lin/include/WorkflowEngine/ProcessComponent.h:29
29 virtual const char* getProcessId() { return processId.c_str();}
(gdb)
《《《《《《《《查找原因,为什么Workflow.cpp:504,得到的process是错误的值》》》》》》》
下面很重要,是生成process的地方
/opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/DataBaseHelper.cpp:637
具体代码在:
/opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/ProcessesHandler.cpp:119
break DataBaseHelper.cpp:637
break BaseWorkflowEvent.cpp:22
-----------下面通过查找原因
break WorkflowListener.cpp:68
break BaseWorkflowEvent.cpp:22
break Workflow.cpp:504
break Workflow.cpp:106 //process值0x5fe9f0,process地址0x5c7f44
break ProcessesHandler.cpp:119 //process值0x5fe9f0,process地址0xbec73260,指针作为参数,正常。
break Workflow.cpp:504 //process值0x558650,process地址0x558644(5604932)---> 同在Workflow.cpp,why不一样?
//可能原因,是 指向了错误的 Workflow 对象
//break Workflow.cpp:68 75 91 132
break DataBaseHelper.cpp:643 //process值0x5fe9f0,process地址0xbed0541c,next is 0xbe90a41c
(gdb) p/x *0x5c7f44
$19 = 0x5fe9f0
(gdb) p/x *0x558644
$20 = 0x558650
(gdb)
(gdb) display/ 0x5c7f44 //可以设置一些自动显示的变量,当程序停住时,或是在你单步跟踪时,这些变量会自动显示。
(gdb) display/ 0x558644
break Workflow.cpp:68
break Workflow.cpp:75
break Workflow.cpp:91
break Workflow.cpp:132
执行顺序:
-------> 91
(gdb) p process
$25 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) p &process
$26 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess **) 0x5c7f44
(gdb)
break main.cpp:59
break main.cpp:78
break main.cpp:88
break main.cpp:95
break main.cpp:102
break main.cpp:137
break main.cpp:143
break main.cpp:155
----------------
(gdb) break Workflow.cpp:202
(gdb) c
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:202
202 this->throwEvent( StartedWorkflowEvent(this) );
(gdb) p this
$10 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
404 throwEvent ( EndWorkflowEvent ( this ) );
(gdb) p this
$11 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
break BaseWorkflowEvent.cpp:22
Breakpoint 14, WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbead30f8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
22 return _WF->getProcess()->getProcessId();
(gdb) p _WF
$18 = (WorkflowEngine::Criteria::Core::Workflow *) 0x5585d0 <vtable for WorkflowEngine::Criteria::Event::WorkflowEvent::EndWorkflowEvent+8>
(gdb) set var _WF=0x5c7ed0
(gdb) p _WF->getProcess()
$34 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
----------------从上面分析,进一步发现了错误点,即:BaseWorkflowEvent.cpp:22的 _WF 错误
break Workflow.cpp:197
break Workflow.cpp:202
break Workflow.cpp:404
break Workflow.cpp:417
break Workflow.cpp:382
break WorkflowListener.cpp:50
break WorkflowListener.cpp:56
break WorkflowListener.cpp:62
break WorkflowListener.cpp:68
break WorkflowListener.cpp:74
执行顺序:
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:202
202 this->throwEvent( StartedWorkflowEvent(this) );
(gdb) p this
$35 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
404 throwEvent ( EndWorkflowEvent ( this ) );
(gdb) p this
$36 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
68 processID = ((EndWorkflowEvent*)evt)->getProcessID();
(gdb) p evt
$37 = (WorkflowEngine::Criteria::Event::BaseEvent *) 0xbec6c0f8
----------------从上面分析,进一步发现了错误点,即:WorkflowListener.cpp:68的 evt 错误,然后,bt,追踪精确故障点
(gdb) bt
#0 WorkflowEngine::Criteria::Event::Listener::WorkflowListener::eventAction (this=0x61abd0, event=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
#1 0x0009e074 in WorkflowEngine::Criteria::Event::EventMaker::throwEvent (this=0x5c7f14, evt=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp:36
#2 0x0008d59c in WorkflowEngine::Criteria::Core::Workflow::starting (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
#3 0x00102acc in WorkflowEngine::Criteria::Core::IWorkflow::start (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/IWorkflow.cpp:79
#4 0x00098bb4 in WorkflowEngine::Criteria::Core::WorkFlowThread::run (this=0x60c648)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkFlowThread.cpp:15
#5 0x000964e0 in WorkflowEngine::Criteria::Core::WorkflowManager::executeJob (this=0x605ca0, pWF=0x5c7ed0, bDetach=false)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkflowManager.cpp:155
#6 0x00087ea4 in WorkflowEngine::Criteria::Core::Engine::execute (this=0x61abc8,
processInstanceID=0x605e40 "2015-1015-2253-59275-1312213739", bRestart=false, acStatus=0x0, bSynchWay=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:182
#7 0x000879bc in WorkflowEngine::Criteria::Core::Engine::startWorkFlowInSynchWay (this=0x61abc8,
processID=0x605e40 "2015-1015-2253-59275-1312213739")
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:96
#8 0x0001807c in startProcessInSynchWay (acProcessID=0x605e40 "2015-1015-2253-59275-1312213739", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:371
#9 0x0000b4cc in main (argc=2, argv=0xbec6ca44)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:95
(gdb)
(gdb) p evt
$1 = (WorkflowEngine::Criteria::Event::BaseEvent *) 0xbe8020f8
(gdb) p event
_M_data = 0x60ec18
(gdb) f 1
(gdb) p evt
_M_data = 0x60ec18
(gdb) f 2
(gdb) p this
$4 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
(gdb)
----------------从上面分析,找到了问题的解决方法,如下:
[root@localhost criteria-lin]# pwd
/opt/cBPM-android/criteria-lin
gedit /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp
将 *WorkflowEvent(this) 替换为 (*WorkflowEvent*)(this)
[root@localhost criteria-lin]# grep 'BaseEvent&' -R .|cut -d: -f1|uniq|grep -v 'h~'|grep -v 'cpp~'
./src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp
./src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp
./include/WorkflowEngine/EventListener.h
./include/WorkflowEngine/EventMaker.h
./include/WorkflowEngine/WorkflowListener.h
将上面搜索到的文件中,将 BaseEvent& 替换为 BaseEvent*
----------------至此,经过一个星期左右的时间,成功将PC Linux版 cBPM 移植到Android(ARM)
----------------
[root@localhost criteria-lin]# grep "process =" -R .|cut -d: -f1|uniq|grep bin
break WAPIProcess.cpp:36
break WAPIProcess.cpp:63
break WAPIProcess.cpp:91
break WAPIProcess.cpp:118
break WAPIProcess.cpp:194
break WAPIProcess.cpp:229
break WAPIProcess.cpp:550
break Engine.cpp:330
break BaseAction.cpp:37
break BaseProcessEvent.cpp:10
break BaseProcessEvent.cpp:17
break WorkflowReport.cpp:18
break DataBaseTemplate.cpp:204
break ProcessActionAttach.cpp:69
break ProcessesHandler.h:26
-------------->没有设置断点时的 执行 堆栈
(gdb)
#0 0xe50b0008 in ?? ()
#1 0x00105a24 in WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbed7e0f8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
#2 0x000a3f64 in WorkflowEngine::Criteria::Event::Listener::WorkflowListener::eventAction (this=0x61abd0, event=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
#3 0x0009e074 in WorkflowEngine::Criteria::Event::EventMaker::throwEvent (this=0x5c7f14, evt=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp:36
#4 0x0008d59c in WorkflowEngine::Criteria::Core::Workflow::starting (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
#5 0x00102acc in WorkflowEngine::Criteria::Core::IWorkflow::start (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/IWorkflow.cpp:79
#6 0x00098bb4 in WorkflowEngine::Criteria::Core::WorkFlowThread::run (this=0x60c648)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkFlowThread.cpp:15
#7 0x000964e0 in WorkflowEngine::Criteria::Core::WorkflowManager::executeJob (this=0x605ca0, pWF=0x5c7ed0, bDetach=false)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkflowManager.cpp:155
#8 0x00087ea4 in WorkflowEngine::Criteria::Core::Engine::execute (this=0x61abc8,
processInstanceID=0x605e40 "2015-1015-2211-08205-1671411348", bRestart=false, acStatus=0x0, bSynchWay=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:182
#9 0x000879bc in WorkflowEngine::Criteria::Core::Engine::startWorkFlowInSynchWay (this=0x61abc8,
processID=0x605e40 "2015-1015-2211-08205-1671411348")
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:96
#10 0x0001807c in startProcessInSynchWay (acProcessID=0x605e40 "2015-1015-2211-08205-1671411348", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:371
#11 0x0000b4cc in main (argc=2, argv=0xbed7ea44)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:95
(gdb)
------
Breakpoint 9, WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbe9d40e8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
22 return _WF->getProcess()->getProcessId();
------
break ProcessComponent.h:24
s
(gdb) bt
#0 DataManager::Panorama::WorkflowProcesses::ProcessComponent::getProcessId (this=0x5ffaa8)
at /opt/cBPM-android/criteria-lin/include/WorkflowEngine/ProcessComponent.h:29
#1 0x00022390 in DataManager::Panorama::WorkflowProcesses::Activity::equalTo (this=0x5fedf0, entry=0x5ffa8c)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/Activity.cpp:421
#2 0x00145bdc in bOS::Collections::Collection::add (this=0xbeda96f0, entry2Add=0x5ffa8c)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/Collections/bOSCollection.cpp:31
#3 0x0001c2bc in DataManager::Panorama::WorkflowProcesses::Activities::parse (this=0xbeda96ec, node=0x619fd8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/Activities.cpp:44
#4 0x001610c4 in bOS::XML::Data::XMLObject::init (this=0xbeda96ec, root=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/bOSXMLObject.cpp:89
#5 0x00161768 in bOS::XML::Data::XMLObjectSet::init (this=0xbeda96ec, node=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/bOSXMLObjectSet.cpp:43
#6 0x0001c1c0 in DataManager::Panorama::WorkflowProcesses::Activities::init (this=0xbeda96ec, node=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/Activities.cpp:31
#7 0x0007cec0 in DataManager::Panorama::WorkflowProcesses::WorkflowProcess::parse (this=0xbeda95d8, node=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/WorkflowProcess.cpp:93
#8 0x001610c4 in bOS::XML::Data::XMLObject::init (this=0xbeda95d8, root=0x605048)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/bOSXMLObject.cpp:89
#9 0x00163740 in bOS::XML::Data::XMLFile::init (this=0xbeda95d8, node=0x605048)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/FileSystem/bOSXMLFile.cpp:39
#10 0x0007cad8 in DataManager::Panorama::WorkflowProcesses::WorkflowProcess::init (this=0xbeda95d8, node=0x605048)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/WorkflowProcess.cpp:50
#11 0x00034e18 in DataManager::DataBase::DataBaseHelper::createProcess (this=0x5fbac0, acWorkflowName=0xbeda99c0 "TestNotePad", process=..., b2Prepared=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/DataBaseHelper.cpp:240
#12 0x000179ac in createWorkflowProcess (acWorkflowName=0xbeda99c0 "TestNotePad", acProcessId=0x605e40 "\210R`", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:332
#13 0x0000b498 in main (argc=2, argv=0xbeda9a34)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:88
(gdb)
--------------
0x00105a20 in WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbee840e8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
22 return _WF->getProcess()->getProcessId();
Could not insert single-step breakpoint at 0xe50b0008
--------------
break BaseWorkflowEvent.cpp:22
s
(gdb) bt
#0 WorkflowEngine::Criteria::Core::Workflow::getProcess (
this=0x5585d0 <vtable for WorkflowEngine::Criteria::Event::WorkflowEvent::EndWorkflowEvent+8>)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:504
#1 0x00105a08 in WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbee840e8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
#2 0x000a3f64 in WorkflowEngine::Criteria::Event::Listener::WorkflowListener::eventAction (this=0x61abd0, event=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
#3 0x0009e074 in WorkflowEngine::Criteria::Event::EventMaker::throwEvent (this=0x5c7f14, evt=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp:36
#4 0x0008d59c in WorkflowEngine::Criteria::Core::Workflow::starting (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
#5 0x00102acc in WorkflowEngine::Criteria::Core::IWorkflow::start (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/IWorkflow.cpp:79
#6 0x00098bb4 in WorkflowEngine::Criteria::Core::WorkFlowThread::run (this=0x603be8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkFlowThread.cpp:15
#7 0x000964e0 in WorkflowEngine::Criteria::Core::WorkflowManager::executeJob (this=0x605ca0, pWF=0x5c7ed0, bDetach=false)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkflowManager.cpp:155
#8 0x00087ea4 in WorkflowEngine::Criteria::Core::Engine::execute (this=0x61abc8,
processInstanceID=0x605e40 "2015-1014-1640-54357-820121757", bRestart=false, acStatus=0x0, bSynchWay=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:182
#9 0x000879bc in WorkflowEngine::Criteria::Core::Engine::startWorkFlowInSynchWay (this=0x61abc8,
processID=0x605e40 "2015-1014-1640-54357-820121757")
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:96
#10 0x0001807c in startProcessInSynchWay (acProcessID=0x605e40 "2015-1014-1640-54357-820121757", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:371
#11 0x0000b4cc in main (argc=2, argv=0xbee84a34)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:95
(gdb)
--------------手机
shell@mb526:/ $
getprop |grep ip
[dhcp.wlan0.ipaddress]: [192.168.0.101]
export WF_HOME=/data/data/criteria; export CRITERIA_HOME=/data/data/criteria
cd /data/data/criteria
./gdbserver 192.168.0.100:1234 ./executer
--------------宿主机
# pwd
/opt/cBPM-android/criteria-lin/bin/Criteria/Debug/Tools.Executor
# export PATH=$PATH:/opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/
# arm-linux-androideabi-gdb executer
target extended-remote 192.168.0.104:1234
set debug remote 1
set args TestNotePad
c
--------------
-------------------------------------调试问题5-----------------------------------process指向错误地址
Program received signal SIGSEGV, Segmentation fault.
(gdb) s
Cannot find bounds of current function
(gdb) c
Continuing.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb)
--------------设置断点
break WorkflowListener.cpp:67
s
break bOSProcess.cpp:92
------
break Workflow.cpp:86
break Workflow.cpp:106
break Workflow.cpp:139
break Workflow.cpp:154
------
break Workflow.cpp:106
(gdb) p process
$3 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) p processID
$4 = 0x605e40 "2015-1014-1745-23179-1108168521"
------
break bOSProcess.cpp:20
break bOSProcess.cpp:28
break bOSProcess.cpp:47
break bOSProcess.cpp:147
break bOSProcess.cpp:182
------
break bOSProcess.cpp:28
(gdb) p m_ProcessID
$5 = 4222
break BaseWorkflowEvent.cpp:22 //return _WF->getProcess()->getProcessId();
//_WF->getProcess()返回process(Workflow.cpp:504),
//但是单步进不去getProcessId()()
----------------------------------下面是 具体 找错方法:
break Workflow.cpp:86
break Workflow.cpp:106
break Workflow.cpp:139
break Workflow.cpp:154
break BaseWorkflowEvent.cpp:22
r
s
c
在Workflow.cpp:106停止, 执行 n,然后
(gdb) p process
$19 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) c
22 return _WF->getProcess()->getProcessId();
(gdb) p _WF //这个值正确,因为能够调用getProcess()
$9 = (WorkflowEngine::Criteria::Core::Workflow *) 0x5585d0
(gdb) s
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:504
504 return process;
(gdb) p process //这个值不正确,因为不能够调用getProcessId()
$20 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x558650 <typeinfo for WorkflowEngine::Criteria::Event::WorkflowEvent::RestartedWorkflowEvent>
(gdb) set var process=0x5fe9f0 //修改变量的值
(gdb) p process //修改process的值后,这个值不正确,能够调用getProcessId()
$21 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) s
DataManager::Panorama::WorkflowProcesses::ProcessComponent::getProcessId (this=0x5fea28)
at /opt/cBPM-android/criteria-lin/include/WorkflowEngine/ProcessComponent.h:29
29 virtual const char* getProcessId() { return processId.c_str();}
(gdb)
《《《《《《《《查找原因,为什么Workflow.cpp:504,得到的process是错误的值》》》》》》》
下面很重要,是生成process的地方
/opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/DataBaseHelper.cpp:637
具体代码在:
/opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/ProcessesHandler.cpp:119
break DataBaseHelper.cpp:637
break BaseWorkflowEvent.cpp:22
-----------下面通过查找原因
break WorkflowListener.cpp:68
break BaseWorkflowEvent.cpp:22
break Workflow.cpp:504
break Workflow.cpp:106 //process值0x5fe9f0,process地址0x5c7f44
break ProcessesHandler.cpp:119 //process值0x5fe9f0,process地址0xbec73260,指针作为参数,正常。
break Workflow.cpp:504 //process值0x558650,process地址0x558644(5604932)---> 同在Workflow.cpp,why不一样?
//可能原因,是 指向了错误的 Workflow 对象
//break Workflow.cpp:68 75 91 132
break DataBaseHelper.cpp:643 //process值0x5fe9f0,process地址0xbed0541c,next is 0xbe90a41c
(gdb) p/x *0x5c7f44
$19 = 0x5fe9f0
(gdb) p/x *0x558644
$20 = 0x558650
(gdb)
(gdb) display/ 0x5c7f44 //可以设置一些自动显示的变量,当程序停住时,或是在你单步跟踪时,这些变量会自动显示。
(gdb) display/ 0x558644
break Workflow.cpp:68
break Workflow.cpp:75
break Workflow.cpp:91
break Workflow.cpp:132
执行顺序:
-------> 91
(gdb) p process
$25 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
(gdb) p &process
$26 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess **) 0x5c7f44
(gdb)
break main.cpp:59
break main.cpp:78
break main.cpp:88
break main.cpp:95
break main.cpp:102
break main.cpp:137
break main.cpp:143
break main.cpp:155
----------------
(gdb) break Workflow.cpp:202
(gdb) c
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:202
202 this->throwEvent( StartedWorkflowEvent(this) );
(gdb) p this
$10 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
404 throwEvent ( EndWorkflowEvent ( this ) );
(gdb) p this
$11 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
break BaseWorkflowEvent.cpp:22
Breakpoint 14, WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbead30f8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
22 return _WF->getProcess()->getProcessId();
(gdb) p _WF
$18 = (WorkflowEngine::Criteria::Core::Workflow *) 0x5585d0 <vtable for WorkflowEngine::Criteria::Event::WorkflowEvent::EndWorkflowEvent+8>
(gdb) set var _WF=0x5c7ed0
(gdb) p _WF->getProcess()
$34 = (DataManager::Panorama::WorkflowProcesses::WorkflowProcess *) 0x5fe9f0
----------------从上面分析,进一步发现了错误点,即:BaseWorkflowEvent.cpp:22的 _WF 错误
break Workflow.cpp:197
break Workflow.cpp:202
break Workflow.cpp:404
break Workflow.cpp:417
break Workflow.cpp:382
break WorkflowListener.cpp:50
break WorkflowListener.cpp:56
break WorkflowListener.cpp:62
break WorkflowListener.cpp:68
break WorkflowListener.cpp:74
执行顺序:
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:202
202 this->throwEvent( StartedWorkflowEvent(this) );
(gdb) p this
$35 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
404 throwEvent ( EndWorkflowEvent ( this ) );
(gdb) p this
$36 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
68 processID = ((EndWorkflowEvent*)evt)->getProcessID();
(gdb) p evt
$37 = (WorkflowEngine::Criteria::Event::BaseEvent *) 0xbec6c0f8
----------------从上面分析,进一步发现了错误点,即:WorkflowListener.cpp:68的 evt 错误,然后,bt,追踪精确故障点
(gdb) bt
#0 WorkflowEngine::Criteria::Event::Listener::WorkflowListener::eventAction (this=0x61abd0, event=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
#1 0x0009e074 in WorkflowEngine::Criteria::Event::EventMaker::throwEvent (this=0x5c7f14, evt=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp:36
#2 0x0008d59c in WorkflowEngine::Criteria::Core::Workflow::starting (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
#3 0x00102acc in WorkflowEngine::Criteria::Core::IWorkflow::start (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/IWorkflow.cpp:79
#4 0x00098bb4 in WorkflowEngine::Criteria::Core::WorkFlowThread::run (this=0x60c648)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkFlowThread.cpp:15
#5 0x000964e0 in WorkflowEngine::Criteria::Core::WorkflowManager::executeJob (this=0x605ca0, pWF=0x5c7ed0, bDetach=false)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkflowManager.cpp:155
#6 0x00087ea4 in WorkflowEngine::Criteria::Core::Engine::execute (this=0x61abc8,
processInstanceID=0x605e40 "2015-1015-2253-59275-1312213739", bRestart=false, acStatus=0x0, bSynchWay=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:182
#7 0x000879bc in WorkflowEngine::Criteria::Core::Engine::startWorkFlowInSynchWay (this=0x61abc8,
processID=0x605e40 "2015-1015-2253-59275-1312213739")
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:96
#8 0x0001807c in startProcessInSynchWay (acProcessID=0x605e40 "2015-1015-2253-59275-1312213739", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:371
#9 0x0000b4cc in main (argc=2, argv=0xbec6ca44)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:95
(gdb)
(gdb) p evt
$1 = (WorkflowEngine::Criteria::Event::BaseEvent *) 0xbe8020f8
(gdb) p event
_M_data = 0x60ec18
(gdb) f 1
(gdb) p evt
_M_data = 0x60ec18
(gdb) f 2
(gdb) p this
$4 = (WorkflowEngine::Criteria::Core::Workflow * const) 0x5c7ed0
(gdb)
----------------从上面分析,找到了问题的解决方法,如下:
[root@localhost criteria-lin]# pwd
/opt/cBPM-android/criteria-lin
gedit /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp
将 *WorkflowEvent(this) 替换为 (*WorkflowEvent*)(this)
[root@localhost criteria-lin]# grep 'BaseEvent&' -R .|cut -d: -f1|uniq|grep -v 'h~'|grep -v 'cpp~'
./src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp
./src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp
./include/WorkflowEngine/EventListener.h
./include/WorkflowEngine/EventMaker.h
./include/WorkflowEngine/WorkflowListener.h
将上面搜索到的文件中,将 BaseEvent& 替换为 BaseEvent*
----------------至此,经过一个星期左右的时间,成功将PC Linux版 cBPM 移植到Android(ARM)
----------------
[root@localhost criteria-lin]# grep "process =" -R .|cut -d: -f1|uniq|grep bin
break WAPIProcess.cpp:36
break WAPIProcess.cpp:63
break WAPIProcess.cpp:91
break WAPIProcess.cpp:118
break WAPIProcess.cpp:194
break WAPIProcess.cpp:229
break WAPIProcess.cpp:550
break Engine.cpp:330
break BaseAction.cpp:37
break BaseProcessEvent.cpp:10
break BaseProcessEvent.cpp:17
break WorkflowReport.cpp:18
break DataBaseTemplate.cpp:204
break ProcessActionAttach.cpp:69
break ProcessesHandler.h:26
-------------->没有设置断点时的 执行 堆栈
(gdb)
#0 0xe50b0008 in ?? ()
#1 0x00105a24 in WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbed7e0f8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
#2 0x000a3f64 in WorkflowEngine::Criteria::Event::Listener::WorkflowListener::eventAction (this=0x61abd0, event=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
#3 0x0009e074 in WorkflowEngine::Criteria::Event::EventMaker::throwEvent (this=0x5c7f14, evt=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp:36
#4 0x0008d59c in WorkflowEngine::Criteria::Core::Workflow::starting (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
#5 0x00102acc in WorkflowEngine::Criteria::Core::IWorkflow::start (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/IWorkflow.cpp:79
#6 0x00098bb4 in WorkflowEngine::Criteria::Core::WorkFlowThread::run (this=0x60c648)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkFlowThread.cpp:15
#7 0x000964e0 in WorkflowEngine::Criteria::Core::WorkflowManager::executeJob (this=0x605ca0, pWF=0x5c7ed0, bDetach=false)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkflowManager.cpp:155
#8 0x00087ea4 in WorkflowEngine::Criteria::Core::Engine::execute (this=0x61abc8,
processInstanceID=0x605e40 "2015-1015-2211-08205-1671411348", bRestart=false, acStatus=0x0, bSynchWay=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:182
#9 0x000879bc in WorkflowEngine::Criteria::Core::Engine::startWorkFlowInSynchWay (this=0x61abc8,
processID=0x605e40 "2015-1015-2211-08205-1671411348")
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:96
#10 0x0001807c in startProcessInSynchWay (acProcessID=0x605e40 "2015-1015-2211-08205-1671411348", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:371
#11 0x0000b4cc in main (argc=2, argv=0xbed7ea44)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:95
(gdb)
------
Breakpoint 9, WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbe9d40e8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
22 return _WF->getProcess()->getProcessId();
------
break ProcessComponent.h:24
s
(gdb) bt
#0 DataManager::Panorama::WorkflowProcesses::ProcessComponent::getProcessId (this=0x5ffaa8)
at /opt/cBPM-android/criteria-lin/include/WorkflowEngine/ProcessComponent.h:29
#1 0x00022390 in DataManager::Panorama::WorkflowProcesses::Activity::equalTo (this=0x5fedf0, entry=0x5ffa8c)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/Activity.cpp:421
#2 0x00145bdc in bOS::Collections::Collection::add (this=0xbeda96f0, entry2Add=0x5ffa8c)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/Collections/bOSCollection.cpp:31
#3 0x0001c2bc in DataManager::Panorama::WorkflowProcesses::Activities::parse (this=0xbeda96ec, node=0x619fd8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/Activities.cpp:44
#4 0x001610c4 in bOS::XML::Data::XMLObject::init (this=0xbeda96ec, root=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/bOSXMLObject.cpp:89
#5 0x00161768 in bOS::XML::Data::XMLObjectSet::init (this=0xbeda96ec, node=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/bOSXMLObjectSet.cpp:43
#6 0x0001c1c0 in DataManager::Panorama::WorkflowProcesses::Activities::init (this=0xbeda96ec, node=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/Activities.cpp:31
#7 0x0007cec0 in DataManager::Panorama::WorkflowProcesses::WorkflowProcess::parse (this=0xbeda95d8, node=0x602398)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/WorkflowProcess.cpp:93
#8 0x001610c4 in bOS::XML::Data::XMLObject::init (this=0xbeda95d8, root=0x605048)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/bOSXMLObject.cpp:89
#9 0x00163740 in bOS::XML::Data::XMLFile::init (this=0xbeda95d8, node=0x605048)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Libraries.bOS/XML/Data/FileSystem/bOSXMLFile.cpp:39
#10 0x0007cad8 in DataManager::Panorama::WorkflowProcesses::WorkflowProcess::init (this=0xbeda95d8, node=0x605048)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/WorkflowProcess.cpp:50
#11 0x00034e18 in DataManager::DataBase::DataBaseHelper::createProcess (this=0x5fbac0, acWorkflowName=0xbeda99c0 "TestNotePad", process=..., b2Prepared=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/DataBase/DataBaseHelper.cpp:240
#12 0x000179ac in createWorkflowProcess (acWorkflowName=0xbeda99c0 "TestNotePad", acProcessId=0x605e40 "\210R`", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:332
#13 0x0000b498 in main (argc=2, argv=0xbeda9a34)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:88
(gdb)
--------------
0x00105a20 in WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbee840e8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
22 return _WF->getProcess()->getProcessId();
Could not insert single-step breakpoint at 0xe50b0008
--------------
break BaseWorkflowEvent.cpp:22
s
(gdb) bt
#0 WorkflowEngine::Criteria::Core::Workflow::getProcess (
this=0x5585d0 <vtable for WorkflowEngine::Criteria::Event::WorkflowEvent::EndWorkflowEvent+8>)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:504
#1 0x00105a08 in WorkflowEngine::Criteria::Event::WorkflowEvent::BaseWorkflowEvent::getProcessID (this=0xbee840e8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/BaseWorkflowEvent.cpp:22
#2 0x000a3f64 in WorkflowEngine::Criteria::Event::Listener::WorkflowListener::eventAction (this=0x61abd0, event=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/WorkflowListener.cpp:68
#3 0x0009e074 in WorkflowEngine::Criteria::Event::EventMaker::throwEvent (this=0x5c7f14, evt=...)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/events/EventMaker.cpp:36
#4 0x0008d59c in WorkflowEngine::Criteria::Core::Workflow::starting (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Workflow.cpp:404
#5 0x00102acc in WorkflowEngine::Criteria::Core::IWorkflow::start (this=0x5c7ed0)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/IWorkflow.cpp:79
#6 0x00098bb4 in WorkflowEngine::Criteria::Core::WorkFlowThread::run (this=0x603be8)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkFlowThread.cpp:15
#7 0x000964e0 in WorkflowEngine::Criteria::Core::WorkflowManager::executeJob (this=0x605ca0, pWF=0x5c7ed0, bDetach=false)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/WorkflowManager.cpp:155
#8 0x00087ea4 in WorkflowEngine::Criteria::Core::Engine::execute (this=0x61abc8,
processInstanceID=0x605e40 "2015-1014-1640-54357-820121757", bRestart=false, acStatus=0x0, bSynchWay=true)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:182
#9 0x000879bc in WorkflowEngine::Criteria::Core::Engine::startWorkFlowInSynchWay (this=0x61abc8,
processID=0x605e40 "2015-1014-1640-54357-820121757")
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/engine/Engine.cpp:96
#10 0x0001807c in startProcessInSynchWay (acProcessID=0x605e40 "2015-1014-1640-54357-820121757", response=0x5c2e68)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.WorkflowEngine/WAPI/WAPIProcess.cpp:371
#11 0x0000b4cc in main (argc=2, argv=0xbee84a34)
at /opt/cBPM-android/criteria-lin/src/Criteria/Criteria.Tools/Criteria.Tools.Executor/src/main.cpp:95
(gdb)
--------------手机
shell@mb526:/ $
getprop |grep ip
[dhcp.wlan0.ipaddress]: [192.168.0.101]
export WF_HOME=/data/data/criteria; export CRITERIA_HOME=/data/data/criteria
cd /data/data/criteria
./gdbserver 192.168.0.100:1234 ./executer
--------------宿主机
# pwd
/opt/cBPM-android/criteria-lin/bin/Criteria/Debug/Tools.Executor
# export PATH=$PATH:/opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/
# arm-linux-androideabi-gdb executer
target extended-remote 192.168.0.104:1234
set debug remote 1
set args TestNotePad
c
--------------
0
上一篇:GDB的使用方法--2
下一篇:(OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—完整的调试过程—成功
相关热门文章
- test123
- 编写安全代码——小心有符号数...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- sql relay的c++接口
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—5—process指向错误地址
- OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—5—process指向错误地址
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—2—段错误
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—3—段错误
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—4—段错误
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—2—段错误
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—3—段错误
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—4—段错误
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—完整的调试过程—成功
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—完整的调试过程—成功
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—1—手机死机
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—1—手机死机
- (OK) 编译cBPM—CentOS7—gdb—gdbserver—成功—调试
- (OK) 编译cBPM—CentOS7—gdb—gdbserver—成功—调试
- (OK) 运行cBPM—CentOS7
- (OK) 运行cBPM—CentOS7
- (OK) 运行cBPM—Fedora23
- (OK) 运行cBPM—Fedora23
- TAXSpreadSheet
- Linux——多线程
- GDB的使用方法--2
- linux下文件的一些特性的判断方法
- 算法导论之随机算法
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—5—process指向错误地址
- 如何快速反编译JAVA的jar包或war包
- (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—完整的调试过程—成功
- (OK) 在CentOS 7上安装Chrome
- boa移植到android平台上
- 将Boa移植到Android平台上
- Boa移植到Android——ztg
- UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout
- How to port lighttpd to Android
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
厨房水管怎么包
包水管用什么材料
包水管
永盛物流
深圳永盛鑫手机行情
深圳永盛珠宝有限公司
永盛珠宝有限公司
深圳市永盛鑫贵金属行情
山东永盛橡胶集团有限公司
江口浩美
江浩乔心唯全文免费阅读
乔心唯江浩有章节目录的
怎么包汤圆
怎样包汤圆
汤圆包馅的做法
如何包汤圆
包汤圆作文
汤圆怎么包
包汤圆
上门定做沙发套全包
沙发靠包
包沙发一般多少钱
沙发怎么包
包沙发和做沙发套
包沙发多少钱
包沙发教程
沙发包布
上门包沙发
包沙发价格
沙发包真皮
包邮沙发
沙发弹簧座包
儿童沙发小沙发
包沙发好学吗
包沙发的布料
沙发背景硬包
真皮沙发 沙发垫
真皮沙发沙发垫
真皮沙发沙发套
包沙发的工具
硬包沙发背景墙