If you check the expression log, you will see the printf() function declaration 
and any others we add:

(lldb) log enable lldb expr
(lldb) 2+3

#ifndef NULL
#define NULL (__null)
#ifndef Nil
#define Nil (__null)
#ifndef nil
#define nil (__null)
#ifndef YES
#define YES ((BOOL)1)
#ifndef NO
#define NO ((BOOL)0)
typedef __INT8_TYPE__ int8_t;
typedef __UINT8_TYPE__ uint8_t;
typedef __INT16_TYPE__ int16_t;
typedef __UINT16_TYPE__ uint16_t;
typedef __INT32_TYPE__ int32_t;
typedef __UINT32_TYPE__ uint32_t;
typedef __INT64_TYPE__ int64_t;
typedef __UINT64_TYPE__ uint64_t;
typedef __INTPTR_TYPE__ intptr_t;
typedef __UINTPTR_TYPE__ uintptr_t;
typedef __SIZE_TYPE__ size_t;
typedef __PTRDIFF_TYPE__ ptrdiff_t;
typedef unsigned short unichar;
extern "C"
    int printf(const char * __restrict, ...);

typedef signed char BOOL;

$__lldb_expr(void *$__lldb_arg)          


> On Mar 13, 2018, at 11:04 AM, Davide Italiano <dccitali...@gmail.com> wrote:
> On Tue, Mar 13, 2018 at 10:57 AM, Greg Clayton <clayb...@gmail.com> wrote:
>>> On Mar 13, 2018, at 10:37 AM, Davide Italiano via lldb-commits 
>>> <lldb-commits@lists.llvm.org> wrote:
>>> An alternative proposed by Fred which is an OK middle ground IMHO is
>>> that of not inserting a decl for the unmangled name, but treat this
>>> symbol always as-it-is.
>>> i.e. if we have a symbol _Znwm in some object, we don't insert a decl
>>> for `operator new(unsigned long)` but for _Znwm itself.
>>> Greg, Jason, would that work for you guys?
>> I would be ok with that.
> I'm going to send a review for this soon.
> Best,
> --
> Davide

lldb-commits mailing list

Reply via email to