codelldb icon indicating copy to clipboard operation
codelldb copied to clipboard

it's not possible to see the values of variables inside a function that takes a lambda as an argument.

Open io0000 opened this issue 1 year ago • 3 comments

OS: win10 10.0.19045 VSCode version: 1.77.3 CodeLLDB version: 1.9.0 Compiler: rustc Debuggee: x86_64-windows-msvc, PDB

When debugging, it's not possible to see the values of variables inside a function that takes a lambda as an argument.

Verbose log
[adapter\src\terminal.rs:101] winapi::um::wincon::FreeConsole() = 1
[adapter\src\terminal.rs:102] winapi::um::wincon::AttachConsole(pid) = 1
[adapter\src\terminal.rs:109] winapi::um::wincon::FreeConsole() = 1
ERROR(Python) 23:43:24 codelldb: Traceback (most recent call last):
  File "c:/Users/kk99/.vscode/extensions/vadimcn.vscode-lldb-1.9.0/adapter/scripts\codelldb\codelldb.py", line 153, in evaluate
    value = evaluate_in_context(pycode, is_simple_expr, context)
  File "c:/Users/kk99/.vscode/extensions/vadimcn.vscode-lldb-1.9.0/adapter/scripts\codelldb\codelldb.py", line 290, in evaluate_in_context
    return eval(code, eval_globals, eval_locals)
  File "", line 1, in 
  File "c:/Users/kk99/.vscode/extensions/vadimcn.vscode-lldb-1.9.0/adapter/scripts\codelldb\codelldb.py", line 279, in 
    eval_globals['__eval'] = lambda expr: nat_eval(frame, expr)
  File "c:/Users/kk99/.vscode/extensions/vadimcn.vscode-lldb-1.9.0/adapter/scripts\codelldb\codelldb.py", line 271, in nat_eval
    raise Exception(err.GetCString())
Exception: error: could not find frame's decl context

io0000 avatar Apr 27 '23 15:04 io0000

Are you building in debug mode? Can you provide an repro example?

vadimcn avatar May 03 '23 17:05 vadimcn

  1. debug mode

  2. code snippet

fn call_with_one<F>(func: F) -> usize
    where F: Fn(usize) -> usize 
{
    let mut var1 = 1;
    var1 += 5;
    println!("var1:{}", var1);

    func(1)
}


fn main() {
    let double = |x| x * 2;
    let output = call_with_one(double);   
    println!("{}", output);
}

io0000 avatar May 04 '23 01:05 io0000

Works on Linux. Alas, MSPDB support in LLDB is kinda rough.

vadimcn avatar May 04 '23 05:05 vadimcn