可能的原因1:VisualGDB Project Setting->Debug settings 改了端口号,保存
寻找原因:
对比project-Debug.vgdbsettings,红色为新增处
.....
<GenerateCtrlBreakInsteadOfCtrlC>false</GenerateCtrlBreakInsteadOfCtrlC>
<PreferredDevice />
<UseDefaultInstallDir>false</UseDefaultInstallDir>
<RemotePort>5038</RemotePort>
<LocalPort>5038</LocalPort>
.....
<EnableThreadNameWatcher>true</EnableThreadNameWatcher>
<LaunchAMStartParameters />
<StartupActivity />
<GDBServer />
<StandaloneExeSettings>
<DeploymentDirectory>/data/local/tmp</DeploymentDirectory>
<WorkingDirectory />
<CommandLineArguments />
<Environment>
<Records />
</Environment>
</StandaloneExeSettings>
</Debug>
.......
结果与解决方案:
结果测试发现问题在 <WorkingDirectory />.
修改为<WorkingDirectory>/data/local/tmp</WorkingDirectory>即可,也可通过VisualGDB Project Setting->Debug settings修改.
可能的原因2:工程中创建su后台进程 su --daemon&.
root 1971 1 1140 332 c0262d18 b6ec0110 S su
寻找 原因:
root@generic:/ # ps | grep su
ps | grep su
root 7 2 0 0 c0093bb4 00000000 S sync_supers
system 56 1 19660 6004 ffffffff b6f2c5cc S /system/bin/surfaceflingr
root 1011 1 1140 332 c0262d18 b6f01110 S su
root@generic:/ # netstat -apn
netstat -apn
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5039 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN
tcp 0 95 10.0.2.15:5555 10.0.2.2:5656 ESTABLISHED
root@generic:/ # kill 1011
kill 1011
root@generic:/ # kill 1011
kill 1011
/system/bin/sh: kill: 1011: No such process
1|root@generic:/ # netstat apn
netstat apn
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN
tcp 0 0 10.0.2.15:5555 10.0.2.2:5656 ESTABLISHED
root@generic:/ #
结果:
由于su 在后台运行,无法释放gdbserver端口号.把此进程Kill掉,即可以.
注意:
root 1783 1667 1140 340 c0262d18 b6ecc110 S su 这种情况没关系.