Debugging inter-node spawning...

Per Bergqvist per@REDACTED
Thu May 2 09:03:38 CEST 2002


Hi Harley,                                                            
                                                                      
No, io:format is not printf.                                          
If you check io:format/3 it takes an i/o device pid as the first      
argument. If the argument is omitted io:format will use the group     
leader.                                                               
                                                                      
To do output on the remote node do either:                            
a)                                                                    
RP = rpc:call(per@REDACTED,erlang,list_to_pid,["<0.0.0>"]),               
io:format(RP,"Hello World !\n",[]).                                   
b)                                                                    
LP = erlang:group_leader(),                                           
RP = rpc:call(per@REDACTED,erlang,list_to_pid,["<0.0.0>"]),               
erlang:group_leader(RP,self()),                                       
io:format("Hello World !\n"),                                         
erlang:group_leader(LP,self()).                                       
                                                                      
To do low level output use erlang:display.                            
                                                                      
/Per                                                                  
                                                                      
                                                                      
                                                                      
> On Wed, 1 May 2002, Harley Gorrell wrote:                           
> > Spawning on the node works just fine.  What should I look         
> > at to figure out what is wrong?                                   
>                                                                     
>    I received two replies, to this note which also went to          
> this list.  Thanks Andreas and Lennart!                             
>                                                                     
>    After reading them, I checked again that the cookie was          
> correct (is was) and tried out the 'net_adm:ping' function          
> which I hadnt known about.  With ping I could then see a            
> non-null list from nodes(). So I knew erlang was setup ok.          
>                                                                     
>    After a bit more tinkering, I found that the call was            
> indeed making the round trip, but the output of 'io:format'         
> was appearing on the console of the spawning node.  I was           
> thinking that the output would appear on the remote node.           
>                                                                     
>    Here is an example. 'echo:hi/1' is loaded on 'foo2@REDACTED'         
> with 'c(echo)'. From a new erl, I spawn the function and            
> the output appears locally.                                         
>                                                                     
> --------------------                                                
>                                                                     
> $erl -sname foo1                                                    
> Erlang (BEAM) emulator version 5.1 [source]                         
>                                                                     
> Eshell V5.1  (abort with ^G)                                        
> (foo1@REDACTED)1> spawn(foo2@REDACTED,echo,hi,[foo2]).                      
> hi2 'foo2'                                                          
> <38.48.0>                                                           
> (foo1@REDACTED)2>                                                       
>                                                                     
> --------------------                                                
>                                                                     
>    Moral: 'io:format' is not 'printf'.                              
>                                                                     
> thanks everyone,                                                    
> harley.                                                             
>                                                                     
=========================================================             
Per Bergqvist                                                         
Synapse Systems AB                                                    
Phone: +46 709 686 685                                                
Email: per@REDACTED                                                   



More information about the erlang-questions mailing list