You can usually place breakpoints in your code by clicking on the left margin or the script editor menu. The engine will suspend your game when the line is reached, and you can inspect the value of variables in that suspended state.
I believe you can also pause the game (button next to Play) and see the state of your scene in the Info debugger panel: the hierarchy of nodes, and possibly the value of their variables.
If you can't suspend the game then printing is your only option.
Some idea: conditionnal/non-breaking breakpoints that print messages would be handy because it would save time if the game runs on device and live script modification doesn't works, however it's not supported and hasn't even be suggested, given how few people know it exists in some IDEs.