远道debug调试

远程debug调试

 

官方:

/lib/debugger-3.2.6/doc/html/debugger_chapter.html#id58850

看了此文档,也没有找到怎么使用。不知道没提供还是我没找到。

1.11  Debugging Remote Nodes

By using debugger:start/1, it can be specified if Debugger should be started in local or global mode.

debugger:start(local | global)

If no argument is provided, Debugger is started in global mode.

------------------下面是另一个方案-----------------------------------------------------

来自

 

李存刚的测试

第1步:配置从本地机器ssh免登录的远程节点所在服务器

第2步:在远程节点上配置kernel属性,或者直接写一个config文件:[  {kernel, [{start_boot_server, true} ,  {boot_server_slaves, [{192,168,0,107}]}]}  ].说明:通过erlang_boot_server:start/1启动boot server,通过erl_boot_server:add_slave/1加载一个slave,也就是允许连接本机从而加载代码的client,{192,168,0,107}是我测试客户端的IP地址

第3步:在远程节点上启动boot_server   例如:erl -name a@192.168.0.132 -setcookie abc -config bserver #

第4步: 启动本地调试节点   erl -name b@192.168.0.107 -setcookie abc -loader inet -hosts "192.168.0.132" -id a第5步: 在本地调试节点b@192.168.0.107 启动 debugger   > debugger:start().   然后在打开的界面 通过sftp选择文件,然后在本地节点 运行应用调试即可。

 

看来他的测试,使我想起了

 

Erlang集群节点集合的启动注意的问题 

翻出来一个看差不多。节点顺利启动成功。

远程: erl -kernel start_boot_server true boot_server_slaves '[{192,168,1,8}]' -name master@192.168.1.11 -setcookie abc

本地: erl -name b@192.168.1.8 -setcookie abc -loader inet -hosts "192.168.1.11" -id master@192.168.1.11

在本地打开 打开im().看到能装载文件,兴奋了一会。

这是发现在远程运行程序,本地debug断点不起作用。需要在本地运行才可以。

试了好几次都不可以。

疑问:加载过来的代码在什么地方存储的?  》》》加载到虚拟机????

 

erlc +debug_info foo.erl