Re: [lldb-dev] New target; where to start with thread plans
Ah, that’s right, we did it in debugserver as well. Apple used to have a disassembly framework that we used for the purpose (separate from llvm). But that’s long gone. Jim > On Nov 29, 2018, at 1:22 AM, Pavel Labath wrote: > > On 28/11/2018 21:05, Jim Ingham via lldb-dev wrote: >> The main complication would be if your new target didn't support >> hardware-single-step. If that's the case you will have to have a >> Disassembler that can predict the target PC of all instructions (when >> stopped at that instruction) since you'll have to use software breakpoints >> to drive the lowest level of stepping. There's support in there for >> handling that at a high level since the first couple of iPhone ARM chips >> didn't have single step support but we haven't actually had on any real >> systems we support that lack hardware single step in years, so it may need >> some reviving. > > Linux still uses software single stepping on arm(32), but the code for that > is in lldb-server, so the client doesn't even know it's being used. Of course > that won't help you if you're not using lldb-server. > > Was there ever software single-stepping support in the client? > > pl ___ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
Re: [lldb-dev] New target; where to start with thread plans
On 28/11/2018 21:05, Jim Ingham via lldb-dev wrote: The main complication would be if your new target didn't support hardware-single-step. If that's the case you will have to have a Disassembler that can predict the target PC of all instructions (when stopped at that instruction) since you'll have to use software breakpoints to drive the lowest level of stepping. There's support in there for handling that at a high level since the first couple of iPhone ARM chips didn't have single step support but we haven't actually had on any real systems we support that lack hardware single step in years, so it may need some reviving. Linux still uses software single stepping on arm(32), but the code for that is in lldb-server, so the client doesn't even know it's being used. Of course that won't help you if you're not using lldb-server. Was there ever software single-stepping support in the client? pl ___ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
Re: [lldb-dev] New target; where to start with thread plans
You will need to add ABI support. You'll also need to make an Unwinder that works for your platform. But the thread plan code is pretty generic and relies on the Unwinder and generic features of the Disassembler (mostly "IsBranch") to do its job. For instance, thread step-out just asks the Unwinder for the return address for the current frame, sets a breakpoint there and continues. The architecture specific bits of that are all hidden by the Unwinder. The main complication would be if your new target didn't support hardware-single-step. If that's the case you will have to have a Disassembler that can predict the target PC of all instructions (when stopped at that instruction) since you'll have to use software breakpoints to drive the lowest level of stepping. There's support in there for handling that at a high level since the first couple of iPhone ARM chips didn't have single step support but we haven't actually had on any real systems we support that lack hardware single step in years, so it may need some reviving. Jim > On Nov 28, 2018, at 9:50 AM, Adrian Harris via lldb-dev > wrote: > > Hi Everyone, > > I’ve added basic support for a new target (via gdb-remote) and now it is time > to add ABI support to lldb to improve the debug experience. My understanding > is that I need to add an ABI plugin (we have a very basic stub now) and > thread-plan support. As a first step I’d like to be able to support the > ‘thread step-out’ command. Some basic guidance would be very much appreciated. > > Thanks! > Adrian > > ___ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev ___ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
[lldb-dev] New target; where to start with thread plans
Hi Everyone, I’ve added basic support for a new target (via gdb-remote) and now it is time to add ABI support to lldb to improve the debug experience. My understanding is that I need to add an ABI plugin (we have a very basic stub now) and thread-plan support. As a first step I’d like to be able to support the ‘thread step-out’ command. Some basic guidance would be very much appreciated. Thanks! Adrian ___ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev