[LLVMdev] MallocInst/CallInst bitcast,
Chris Lattner
clattner at apple.com
Fri Oct 16 13:35:23 PDT 2009
On Oct 16, 2009, at 11:21 AM, Daniel Waterworth wrote:
> Thanks very much. I only have one more question, (hopefully), which
> is, is there a better way of finding the direction of stack growth
> other than:
That's a somewhat reasonable, but fragile way to go. Make sure to
mark StackCmp with attribute(noinline). Don't be too surprised if it
doesn't work on some compiler. I don't know a better way to do it
though.
-Chris
>
> static bool StackCmp(void *ptr) {
> volatile int a;
> return (void *)&a > ptr;
> }
>
> bool FindStackDirection() {
> volatile int a;
> return StackCmp((void *)&a);
> }
>
> Preferably one which isn't destroyed by optimization.
>
> Thanks again,
>
> Daniel
>
> 2009/10/16 Chris Lattner <clattner at apple.com>
>
> On Oct 16, 2009, at 4:43 AM, Daniel Waterworth wrote:
>
>> Never mind, I used ExecutionEngine's InstallLazyFunctionCreator and
>> DisableSymbolSearching to cause malloc and free calls to be handled
>> by my logging functions. Sorry for the unnecessary list mail.
>
> No problem, this is a better way to go. The MallocInst and FreeInst
> instructions are about to be removed from LLVM IR. Malloc and free
> will be represented normal 'call' instructions.
>
>> Is it possible to find out the size and beginning pointer of the
>> current stack frame, from a function operating outside of the
>> virtual machine, but called by a function within it?
>
> I don't think so. Typically, applications that need this sort of
> thing get the address of the function and then do a fuzzy
> disassembly of the prolog.
>
> -Chris
>
>>
>> Thanks,
>>
>> Daniel
>>
>> 2009/10/16 Daniel Waterworth <da.waterworth at googlemail.com>
>> Hello,
>>
>> I'm writing a virtual machine that functions as a sandbox based on
>> llvm. In order to prevent programs from accessing memory that has
>> not been allocated to them, I want to replace calls to malloc and
>> free with calls to a logged functions that will record the memory
>> that is being allocated to the program. Is it possible to cast/
>> convert a MallocInst or FreeInst to a CallInst?
>>
>> Thanks,
>>
>> Daniel
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091016/9bdd1ac6/attachment.html>
More information about the llvm-dev
mailing list