On 21.01.15 19:45, jing...@apple.com wrote: > When I add a breakpoint like this then before I run the program it is not > resolved, but then when I run it does get resolved and hit. For instance: > > > cat /tmp/address-bkpt.lldb > break set -a 0x00007fff9223f050 > > lldb Sketch.app/ -S /tmp/address-bkpt.lldb > (lldb) command source -s 1 '/tmp/address-bkpt.lldb' > (lldb) target create "Sketch.app" > Current executable set to 'Sketch.app' (x86_64). > (lldb) break list > Current breakpoints: > 1: address = 0x00007fff9223f050, locations = 1 > 1.1: address = 0x00007fff9223f050, unresolved, hit count = 0 > > (lldb) run > Process 62885 launched: 'Sketch.app/Contents/MacOS/Sketch' (x86_64) > Process 62885 stopped > * thread #1: tid = 0x2447b6, function: objc_retain , stop reason = breakpoint > 1.1 > frame #0: 0x00007fff9223f050 libobjc.A.dylib`objc_retain > -> 0x7fff9223f050 <objc_retain>: xorl %eax, %eax > 0x7fff9223f052 <objc_retain+2>: testq %rdi, %rdi > 0x7fff9223f055 <objc_retain+5>: je 0x7fff9223f060 ; > objc_retain + 16 > 0x7fff9223f057 <objc_retain+7>: testb $0x1, %dil > > Address breakpoints are funny before you run, since libraries haven't gotten > their correct load addresses, and in fact quite often there's either nothing > actually in the address where they WILL load, or many things, because most > libraries on OS X are zero based. > > So I wouldn't worry too much about what it says before you run. If it isn't > hitting the breakpoint once you actually run, however, that would be worth > look into.
It isn't hitting the breakpoint after I "run". When the program is running and I'm at the address of the breakpoint the breakpoint is still marked as "unresolved". I wouldn't have asked if it would work correctly. As you can see below I manually went to the address of the breakpoint after "process launch --stop-at-entry" and the breakpoint is still not resolved. [lldb]> ni Process 5666 stopped * thread #1: tid = 0x45407, 0x00007fff5fc01031 dyld`_dyld_start + 49, stop reason = instruction step over frame #0: 0x00007fff5fc01031 dyld`_dyld_start + 49 -> 0x7fff5fc01031 <_dyld_start+49>: callq 0x7fff5fc01076 ; dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) 0x7fff5fc01036 <_dyld_start+54>: movq -0x8(%rbp), %rdi 0x7fff5fc0103a <_dyld_start+58>: cmpq $0x0, %rdi 0x7fff5fc0103e <_dyld_start+62>: jne 0x7fff5fc01050 ; _dyld_start + 80 [lldb]> br li Current breakpoints: 1: address = 0x00007fff5fc01031, locations = 1 1.1: address = 0x00007fff5fc01031, unresolved, hit count = 0 After I stepped over the breakpoint it looks like this: [lldb]> ni Process 5666 stopped * thread #1: tid = 0x45407, 0x00007fff5fc01036 dyld`_dyld_start + 54, queue = 'com.apple.main-thread', stop reason = instruction step over frame #0: 0x00007fff5fc01036 dyld`_dyld_start + 54 -> 0x7fff5fc01036 <_dyld_start+54>: movq -0x8(%rbp), %rdi 0x7fff5fc0103a <_dyld_start+58>: cmpq $0x0, %rdi 0x7fff5fc0103e <_dyld_start+62>: jne 0x7fff5fc01050 ; _dyld_start + 80 0x7fff5fc01040 <_dyld_start+64>: movq %rbp, %rsp [lldb]> br li Current breakpoints: 1: address = 0x00007fff5fc01031, locations = 1, resolved = 1, hit count = 0 1.1: address = 0x00007fff5fc01031, resolved, hit count = 0 And I tried the same procedure as you with only one line in my txt file and after I hit "run" on a simple "hello world" C program the program exited with status 0 without hitting the breakpoint at 0x7fff5fc01031. Christian _______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev