bulbazord requested changes to this revision.
bulbazord added a comment.
This revision now requires changes to proceed.

I think it's good to improve the error messaging but I think we can probably do 
better. "Function caller" is specific to the internals of LLDB and isn't really 
meaningful for many users. It's also somewhat confusing from a user's 
perspective when the expression you're running isn't calling a function. For 
example:

  alex@alangford build % ./bin/lldb ~/tmp/foo
  (lldb) target create "/Users/alex/tmp/foo"
  Current executable set to '/Users/alex/tmp/foo' (arm64).
  (lldb) b main
  Breakpoint 1: where = foo`main + 28 at foo.c:6:7, address = 0x0000000100003f68
  (lldb) r
  Process 44467 launched: '/Users/alex/tmp/foo' (arm64)
  Process 44467 stopped
  * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      frame #0: 0x0000000100003f68 foo`main at foo.c:6:7
     1    #include <stdio.h>
     2
     3    int g_foo = 5;
     4
     5    int main() {
  -> 6      int val = 7;
     7      printf("Hello World!: %d\n", val);
     8      return 0;
     9    }
  (lldb) c
  Process 44467 resuming
  Hello World!: 7
  Process 44467 exited with status = 0 (0x00000000)
  (lldb) p val
  error: Can't make a function caller while the process is running

If I were an end user who didn't know much about LLDB, I would think "I'm 
trying to print a variable, what's this about a function?" and "Why is memory 
allocation involved?". I would suggest changing the error message to something 
like: "Unable to evaluate expression while the process is $STATE: the process 
must be running and stopped to evaluate this expression".

What do you think?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D151497/new/

https://reviews.llvm.org/D151497

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to