This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA 4/9] Explicit locations v2 - Add address locations


On 06/08/2014 02:58 PM, Doug Evans wrote:

I've given the series another read through.
Not as detailed a read through as I want to, but that'll have to wait for a bit.


I really appreciate your efforts here. I owe you a beverage of your choice should we ever meet in person again!

@@ -291,10 +290,8 @@ bpfinishpy_init (PyObject *self, PyObject *args,
PyObject *kwargs)
        struct event_location location;

        /* Set a breakpoint on the return address.  */
-      initialize_event_location (&location, LINESPEC_LOCATION);
-      finish_pc = get_frame_pc (prev_frame);
-      xsnprintf (small_buf, sizeof (small_buf), "*%s", hex_string (finish_pc));
-      EVENT_LOCATION_LINESPEC (&location) = small_buf;
+      initialize_event_location (&location, ADDRESS_LOCATION);
+      EVENT_LOCATION_ADDRESS (&location) = get_frame_pc (prev_frame);
        create_breakpoint (python_gdbarch,
                           &location, NULL, thread, NULL,
                           0
I can think of two solutions.  Maybe there's another even better one.

1) Have a "placement new"-like constructor akin to the existing
new_foo_location constructors we have that takes a pointer to the
object to initialize.
2) Always use the existing new_foo_location constructors and free the
object when done.

My purpose on this was efficiency. I haven't a clue how often a python script could call this, so I opted to handle memory allocations a little more tightly. I have no real objections to either solution, but I guess I would opt for #2 since that both exists and is already widely used.

Do you want me to submit an update to the series for this, or shall I wait for more feedback?

Keith


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]