One slightly non-obvious thing about the debug information that most compilers generate (including gcc & clang) is that the only generate debug information for functions at the point where the function is defined, not in all the modules where it it used. This is just to keep the debug information from becoming unmanageably large.
That means that even though your code includes CoreGraphics headers that define CGContextSetBlendMode , you still don't have debug information for the function CGContextSetBlendMode. The debugger can see the symbol name from the information the dynamic linker uses to bind up calls, and so it can set a breakpoint on it, but it has no idea what "context" means. That's why your condition wasn't valid, it referred to an unknown name.
If you still want to break on CGContextSetBlendMode when the first argument is nil, you need to figure out where the first argument to the function is stored when the function is called. If it is stored in a register (true for ARM and x86_64, but not i386) then lldb has convenience variables: $arg1, $arg2, etc. which are aliases for the first few argument passing registers. So for ARM, you should be able to use the condition:
$arg1 == nil
Note that the argument passing registers will generally only hold the actual argument values at the beginning of the function. Don't try to use them in the middle of the function, as these registers have quite likely been reused by that time.