ybernet-uAjRD0nVeow@public.gmane.org
2008-Nov-11 01:04 UTC
bizarre ruby debug behaviour when using variables beginning with character ''u'' on windows
I''m using Instant Rails on windows. I''m also using ruby debug.
I first stumbled across the problem when an array that I named
utilities_used = [] was misbehaving. I added some experimental code
and set a breakpoint and started to investigate.
Here''s my code (it''s inside a model file):
foo = []
ufoo = []
vfoo = []
utfoo = []
utifoo = []
utils = []
utils_foo = []
foo_used = []
utils_used = []
missing_vehicles = []
debugger
When I break into the debugger:
(rdb:94) foo
[ ]
(rdb:94) vfoo
[ ]
(rdb:94) foo_used
[ ]
(rdb:94) missing_vehicles
[ ]
(rdb:94) ufoo
#1 E:/InstantRails-2.0-win/rails_apps/Carbon Salon Source Tree/app/
controllers/admin_controller.rb:37 in ''receive_file''
(rdb:94) foo
NameError Exception: undefined local variable or method `foo'' for
#<AdminController:0x46b45b4>
(rdb:94) vfoo
NameError Exception: undefined local variable or method `vfoo'' for
#<AdminController:0x46b45b4>
(rdb:94) foo_used
NameError Exception: undefined local variable or method `foo_used'' for
#<AdminController:0x46b45b4>
(rdb:94) missing_vehicles
NameError Exception: undefined local variable or method
`missing_vehicles'' for #<AdminController:0x46b45b4>
Note that, as soon as I inspect an array who''s name starts with the
letter ''u'', everything goes to pot...
I tinkered with this some more:
Code:
foo = [''a'', ''b'', ''c'']
ufoo = [''d'', ''e'', ''f'']
missing_vehicles = []
foo.each {|f| puts f}
ufoo.each {|u| puts u}
Console output:
Processing AdminController#receive_file (for 127.0.0.1 at 2008-11-10
16:58:09) [POST]
Session ID: 858773c8b3335d4c6e9a1326e17c7cd0
Parameters:
{"user_data_file"=>#<ActionController::UploadedStringIO:
0x42920a8>, "action"=>"receive_file",
"authenticity_token"=>"8
ce751d807f83817a140eb1cc4e463cc8f5b20f0",
"controller"=>"admin"}
a
b
c
d
e
f
E:/InstantRails-2.0-win/rails_apps/Carbon Salon Source Tree/app/models/
user_data_file.rb:95 #end
so - the code itself seems to work, back to the debugger:
(rdb:98) foo
["a", "b", "c"]
(rdb:98) ufoo
#1 E:/InstantRails-2.0-win/rails_apps/Carbon Salon Source Tree/app/
controllers/admin_controller.rb:37 in ''receive_file''
(rdb:98) foo
NameError Exception: undefined local variable or method `foo'' for
#<AdminController:0x426b46c>
(rdb:98)
So - it seems to be a problem with the debugger, rather than with
ruby. In fact, now that I think of it, i''ve repeatedly experienced
bizarre behaviour when using the debugger to inspect variables that
begin with the letter ''u''. Anybody else seen this?
I''m new to RoR, so - maybe i''m doing something stupid here...
any
input, enlightenment would be very much appreciated.
Yoram
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2008-Nov-11 10:42 UTC
Re: bizarre ruby debug behaviour when using variables beginning with character ''u'' on windows
On 11 Nov 2008, at 01:04, ybernet-uAjRD0nVeow@public.gmane.org wrote:> > I''m using Instant Rails on windows. I''m also using ruby debug. > > I first stumbled across the problem when an array that I named > utilities_used = [] was misbehaving. I added some experimental code > and set a breakpoint and started to investigate. > > Here''s my code (it''s inside a model file): > > foo = [] > ufoo = [] > vfoo = [] > utfoo = [] > utifoo = [] > utils = [] > utils_foo = [] > foo_used = [] > utils_used = [] > missing_vehicles = [] > > debugger > > When I break into the debugger: > (rdb:94) foo > [ ] > (rdb:94) vfoo > [ ] > (rdb:94) foo_used > [ ] > (rdb:94) missing_vehicles > [ ] > (rdb:94) ufoo > #1 E:/InstantRails-2.0-win/rails_apps/Carbon Salon Source Tree/app/ > controllers/admin_controller.rb:37 in ''receive_file''Looks like ruby debug sees the u and handles it like the u command (which means move up the stack frame, pushing all your local variables out of scope). I''m surprised any of this works - normally to evaluate an expression you need to use the e command ie e foo Fred> > (rdb:94) foo > NameError Exception: undefined local variable or method `foo'' for > #<AdminController:0x46b45b4> > (rdb:94) vfoo > NameError Exception: undefined local variable or method `vfoo'' for > #<AdminController:0x46b45b4> > (rdb:94) foo_used > NameError Exception: undefined local variable or method `foo_used'' for > #<AdminController:0x46b45b4> > (rdb:94) missing_vehicles > NameError Exception: undefined local variable or method > `missing_vehicles'' for #<AdminController:0x46b45b4> > > Note that, as soon as I inspect an array who''s name starts with the > letter ''u'', everything goes to pot... > > I tinkered with this some more: > Code: > foo = [''a'', ''b'', ''c''] > ufoo = [''d'', ''e'', ''f''] > missing_vehicles = [] > > foo.each {|f| puts f} > ufoo.each {|u| puts u} > > Console output: > Processing AdminController#receive_file (for 127.0.0.1 at 2008-11-10 > 16:58:09) [POST] > Session ID: 858773c8b3335d4c6e9a1326e17c7cd0 > Parameters: {"user_data_file"=>#<ActionController::UploadedStringIO: > 0x42920a8>, "action"=>"receive_file", "authenticity_token"=>"8 > ce751d807f83817a140eb1cc4e463cc8f5b20f0", "controller"=>"admin"} > a > b > c > d > e > f > E:/InstantRails-2.0-win/rails_apps/Carbon Salon Source Tree/app/ > models/ > user_data_file.rb:95 #end > > so - the code itself seems to work, back to the debugger: > > (rdb:98) foo > ["a", "b", "c"] > (rdb:98) ufoo > #1 E:/InstantRails-2.0-win/rails_apps/Carbon Salon Source Tree/app/ > controllers/admin_controller.rb:37 in ''receive_file'' > (rdb:98) foo > NameError Exception: undefined local variable or method `foo'' for > #<AdminController:0x426b46c> > (rdb:98) > > So - it seems to be a problem with the debugger, rather than with > ruby. In fact, now that I think of it, i''ve repeatedly experienced > bizarre behaviour when using the debugger to inspect variables that > begin with the letter ''u''. Anybody else seen this? > > I''m new to RoR, so - maybe i''m doing something stupid here... any > input, enlightenment would be very much appreciated. > > Yoram > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---