Ruby 용 웹 기반 디버거를 작성하고 있지만이 작업을 수행하려면 서버 측 Ruby 프로그램에서 Ruby 디버거를 호출 할 수 있어야합니다. 이것이 이제껏 끝났습니까? 이것은 가능한가?Ruby 1.9에서 루비 프로그램 내에서 루비 디버거를 프로그래밍 방식으로 호출하려면 어떻게해야합니까?
최종 제품을 빌드하면 웹 브라우저 만 사용하여 Ruby 코드를 편집하고 실행하고 단계적으로 실행할 수 있습니다. 디버깅 할 루비 코드는 서버 측에서 "평가"됩니다.
나는 popen 또는 expect를 사용하도록 제안한 stackoverflow 사용자 중 하나에 의해 올바른 방향으로 지적되었습니다. 나는이 두 가지를 모두 시도했지만 다음과 같은 문제를 겪었습니다.
popen : 콘솔을 기다리는 중에 디버그 콘솔의 출력 끝을 알리는 데 타임 아웃 블록을 사용해야합니다 (명령 줄 터미널에서이를 감지 할 수 있습니다. 왜 루비가 안되니?).
expect : 아래 프로그램에서 디버거 입력이 디버거와 동기화되지 않습니다. 왜 그런가요?
require 'pty' require 'expect' $expect_verbose = true PTY.spawn("rdebug deb.rb") do |from_debugger, to_debugger, pid| a=nil while (a != "end") do from_debugger.expect(/\(rdb:1\)/) do |input| a = gets to_debugger.puts(a + "\n") end from_debugger.flush end end
수 당신 세부 조금 더 당신이 뭘하려는 건지? – Geo
웹 브라우저에서 루비 코드를 디버깅하려고하는데, 이것은 웹 기반 IDE의 일부입니다. – Zubair