Concluding my findings:
Sorry that it took so long looking at the problem re 2 years ago.
My journey:
1) Created a Freebsd bootable disk for my Mac: by first creating a memory stick bootable Freebsd distribution. Freebsd used because of dtrace support / implementation and because Apple's dumbing down its dtrace functionality on later OSes. Dtrace functionality was useable on OSes before El Captitain.
Apple has functionally disabled dtrace for security reasons.
If anyone is interested Goolge Apple Dtrace implementation.
Hence my Freebsd creation.
2) Use dtrace to watch rails server execute with Byebug's traceline statement turned on. This produces a recursive loop waiting on stdout to output its source lines
This guard also prevented dtrace output pipelining to tee utility. When stopping the rail server, dtrace then flushed out its output.
3) I did other interspersed activities as i am retired
4) Sometimes the journey is at the tip of one's nose and not around the back of one's head to the other side: laughing at myself :}
The good news is Byebug funcitons properly! It is rails that did not want the output traced.
The issue is in builder.rb"s statement using TOPLEVEL_BINDING context
def self.new_from_string(builder_script, file="(rackup)")
eval "Rack::Builder.new {\n" + builder_script + "\n}.to_app", TOPLEVEL_BINDING, file, 0
end
On my Mac OS:
/usr/local/rvm/gems/ruby-2.1.1/gems/rack-1.5.5/lib/rack/builder.rb
In Freebsd
~/blog/.rvm/ of ruby version/src
The TOPLEVEL_BINDING context takes over stdout and guards against its use. Probably builder.rb software developer's decision to not allow the tracing of this eval statement.
By commenting out in builder.rb
eval str#, TOPLEVEL_BINDING, file, 0
^
!
----- U can observe the Byebug traced lines of the eval statement
So if anyone like me wants to trace the server to post evaluate a la grep, gawk etc the source code modules called, Maybe a statement in Byebug's documentation will add this finding.
Originally I did not post these findings to this forum but to the Byebug supporters, as to possible developer's reason to disallow this tracing to public eyes?
As there has not been a response of about a month to these findings, I am posting here for others knowledge.
I consider this issue closed with this reasonable workaround as this issue is a once-in-a-blue-moon issue
from the likes of developers like me ;}.
And not to be investigated at the Ruby implementation level as to why their guard recursively loops without a message before halting of the server when Byebug is tracing called statements called from Ruby.
Hope this clarifies / helps, and thanks to your past responses.
Dave