> The problem is that there are complications if the target is stripped off 
> symbols,

SIMPLE - see my reply from a few minutes ago.

If you write your “DEBUGGER_CALL” function- you could decorate it with some 
signature pattern.

For example, in assembly language:

        .ascii  “DEBUGGER_CALL_FUNCTION_START===>”
DEBUGGER_CALL:
        mov             r0,-1
        return
        nop
        nop
        nop
        nop
        nop
        .ascii  “<====DEBUGGER_CALL_FUNCTION_END”

Then search the target text segment, you should look for and find exactly ONE 
instance of the strings.
Or maybe you will find others in various shared libraries that might be loaded
Again, the solution is simple - Search the text segment for your string pattern


>  I probably can work around by still sending a signal

DO NOT use signals - Signals do not work on targets that do not have an 
operating system

Another reason is you want to be able to insert these types of things in main 
line code that gets executed a reasonable number of times, you don’t want 
SIGNALS going off, they delay things

Instead, you have a single instance of a couple instructions, in a  more modern 
computer these few opcodes live in the CPU cache and become almost ZERO overhead

Thus you can leave them in … and not really effect overall system performance 
meaningfully

> Another vague worry is if overzealous compiler would optimize it out,

Hence you write this in assembly language, you also must worry about optimizing 
linkers but you can probably control that more easily.

You supply a *LIBRARY* (binary) that your users would link against, that 
library contains exactly that one function above nothing else
 
> I do not fully understand why we need mutex here... Each thread allocates 
> data in its own memory (either allocated or on stack) and when it breaks each 
> thread has its own local pointer (either on stack or in register). I.e. it 
> seems this can be made lock-free.

YES in the example I give, the “DEBUGGER_CALL” data structure would most likely 
live on the current threads CPU STACK  Hence it is thread safe

**END**

-Duane.


_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to