-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
