jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.

In the future, can you generate patches with context (i.e. pass -U9999 to "git 
diff" or "git show"), it's a lot easier to read patches with context.

This doesn't seem like the right solution to the problem to me.  The way 
address breakpoints SHOULD work  is that when you set the breakpoint, we 
resolve the address you pass in against the images in the target.  If the 
address is in an image in the list, then we convert the load address to a 
section relative address before making the breakpoint.  Address breakpoints 
made that way will always return true for m_addr.GetSection(), and so set 
re_resolve to true before getting to the test you modified.

OTOH, lldb is a bit hesitant to reset raw load address breakpoints that aren't 
in any module.  After all, you have no idea, what with loading & unloading & 
the effects of ASLR, a raw address doesn't have much meaning run to run.

In your case, you have an address that's clearly in a section, so it should 
have been handled by the if(m_addr.GetSection() || m_module_filespec) test.  So 
the correct fix is to figure out how you ended up with a non-section relative 
address for the breakpoint.

I don't want lldb to silently reset non-section relative addresses.  The only 
way those should show up is if you set the breakpoint on some code that was NOT 
in any section, maybe JIT code or something, and lldb has no way of knowing 
what to do with those addresses on re-run.  Refusing to re-resolve them may be 
too harsh, but we should at least warn about them.  Whereas if the address is 
section relative, we can always do the right thing.

So the most important thing here is to make sure that address breakpoints 
always have section relative addresses if we can by any means identify the 
section they belong in.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109738/new/

https://reviews.llvm.org/D109738

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to