There is no obvious and general way to know what you want to know
Consider the following 

int x;
...
if (foo)
  x = 1;
else
  ;
// is x written to here or not?

If you wanted to pursue this, you could of course track the memory locations of 
all variables, and step through the code, and figure out when a write to those 
locations occur. From that point on, your variable would be initialized.
I expect this to be unusably slow for anything but very very small portions of 
code.

I guess the next question is "what are you really trying to do"?

Sent from my iPhone

> On Aug 30, 2014, at 12:58 AM, Kun LIng <lin...@lingcc.com> wrote:
> 
> Hi all,
>     I am currently using python interface to run a non-interactively script 
> based on LLDB to trace the variable changing during each step during the 
> program running. 
> 
>     C allows a variable to be declared at first without initialization.  And 
> the value of the variable after declaration could be a random value before 
> initialized according to my test using LLDB with the following code compiled 
> by clang+llvm. 
> 
> ----Example Code ----
> #include <stdio.h>
> #include <stdlib.h>
> int g = 42;
> float u = 5;
> struct node {
>   int field;
>   struct node* next;
> };
> void f() {
>     g = g + 1;
>     printf("Hello world!\n");
> }
> 
> int main(int argc, char *argv[])
> {
>   int x;
>   int y=10;
>   x  = y+1;
>   struct node* root = (struct node*)malloc(sizeof(struct node));
>   root->field = 3;
>   root->next = (struct node*)malloc(sizeof(struct node));
>   root->next->field = 2;
>   free(root->next);
>   free(root);
> 
>   int i = 0;
>   i = i + 1;
>   f();
>   return 0;
> }
> 
> -----End Example Code ----
> 
>    My question is:
>    In LLDB, is there a way to check whether a variable is currently be 
> declared, and have not been initialized? So that my non-interactively script 
> could check this, and ignore to show it before initialized ?
> 
>    Thanks very much.
> 
> Best,
> Kun Ling
>  
> _______________________________________________
> lldb-dev mailing list
> lldb-dev@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to