0

I'm debuging with gdb and need to define some helper commands. Basically I want my customized command to operate differently depending on the number of args given.

So I have to test whether $arg* is given, see the code below:

define pgdir

    set $pgdir = $arg0

    if ($arg1) {
        // show the corresponding PDE
    } else {
        // show the whole page directory
    }

end

Is it possible to test whether a variable is void?

1

You can use the convenience function $_isvoid(). It returns 1 if the variable is void.

(gdb) set $v = 1
(gdb) print $_isvoid($v)
$1 = 0
(gdb) print $_isvoid($v2)
$2 = 1
0

gdb supports $argc which per the manual expands out to something from 0..10, so in your case it would probably be

define pgdir
  if $argc == 2
    ...
  else
    ...
  end
end
  • Thanks thrig, could you please tell me how I can test a variable is void except the answer I just posted? – Charles Jan 6 at 16:01
0

As for my problem, there is a $argc variable so that I can do this:

define pgdir

    set $pgdir = $arg0

    if ($argc == 1) {
        // show the corresponding PDE
    } else {
        // show the whole page directory
    }

end

As for the question how to test whether a variable is void, I thought of a tricky and inelegant way: test whether the variable is equal to a variable with void value.

define func

    if ($var_to_test == $var_that_no_one_is_like_to_use_so_that_it_is_void)
        // do something

end

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.