-Mike

> On Nov 19, 2013, at 5:03 PM, "[email protected]" <[email protected]> wrote:
> 
> Yin,
> 
> Sorry if I was confusing.  Even on the Mavericks lldb we don't put up a 
> message for reloading, we just do the right thing...  
> 
> What I was saying was I won't guarantee that we did the reloading itself 
> correctly on that older lldb, thought I am pretty sure we do.  I just don't 
> have a copy around to test.
> 
> If we think we should have a reloading message, somebody should file a bug or 
> just implement it.
> 
> Jim
> 
>> On Nov 19, 2013, at 4:16 PM, Yin Ma <[email protected]> wrote:
>> 
>> Hi Jim,
>> 
>> Thank you for the quick reply. 
>> I am try lldb on Maverick to see if any message for 
>> Reloading.
>> 
>> Thanks,
>> 
>> Yin 
>> 
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] 
>> Sent: Tuesday, November 19, 2013 3:42 PM
>> To: Yin Ma
>> Cc: [email protected]
>> Subject: Re: [lldb-dev] Question for debugging a forked program and reload 
>> symbol
>> 
>> 
>>> On Nov 19, 2013, at 2:49 PM, Yin Ma <[email protected]> wrote:
>>> 
>>> Hi
>>> 
>>> I have a very simple program
>>> 
>>> #include <stdio.h>
>>> int num = 0;
>>> int main(int argc, char*argv[]){
>>>   int pid;
>>>       int num;
>>>   pid = fork();
>>>   printf("%d", pid);
>>>   if(pid == 0){       /*child*/
>>>       num = 1;
>>>   }else if(pid > 0){  /*parent*/
>>>       num = 2;
>>>   }
>>>   printf("%d", num);
>>>       while(num) {
>>>               num ++;
>>>       }
>>> 
>>>       return num;
>>> }
>>> 
>>> I break at num = 1;
>>> B g.c:9
>>> 
>>> And I run
>>> The program never hits the breakpoint.
>>> And the output from the program is
>>> 4862
>>> 2
>>> 0
>>> 
>>> However, if I run in terminal
>>> The output is
>>> 4813
>>> 2
>>> 0
>>> 1
>>> 
>>> It looks like the forked portion is not available in lldb.
>>> What’s going on here?
>> 
>> Since fork copies the address space of the parent, the breakpoint trap we 
>> put in goes along for the ride, and when the child gets running it hits it.  
>> lldb doesn't follow forks at present, so it doesn't know to catch the 
>> child's breakpoint hit, and so the child will just die. That's why you 
>> didn't see its output.
>> 
>>> 
>>> Another question:
>>> If I am debugging an executable, after I modified the source
>>> And re-compile the executable, the next time when I run
>>> Under debugger, gdb will show reload symbol. I didn’t see
>>> The same thing for lldb or any output about updating. Do
>>> I have to reload the executable every time I modify it?
>> 
>> lldb just reloads the executable if it changes.  We don't print a message 
>> saying we did this.  Maybe we ought to, just to reassure folks we did the 
>> right thing?
>> 
>>> 
>>> I am using Moutain Lion, lldb-179.5
>> 
>> That's a pretty old lldb, but I'm pretty sure we've done this correctly for 
>> quite some time.
>> 
>> Jim=
>> 
> 
> 
> _______________________________________________
> lldb-dev mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to