国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Ruby調(diào)試器可以用來(lái)調(diào)試代碼

開(kāi)發(fā) 開(kāi)發(fā)工具
正確的使用Ruby調(diào)試器,可以幫助我們調(diào)試代碼。我們可以簡(jiǎn)單的像打開(kāi)telnet一樣的連接到Ruby調(diào)試器。它會(huì)調(diào)用一個(gè)叫做set_trace_func的回調(diào)函數(shù)。

許多開(kāi)發(fā)人員都認(rèn)為Ruby調(diào)試器是不存在的。這實(shí)際上是一個(gè)錯(cuò)誤的觀念。那么Ruby調(diào)試器到底起到一個(gè)什么樣的作用,下面我們將會(huì)為大家做一個(gè)詳細(xì)的解讀。有些人說(shuō)這是Ruby的一個(gè)問(wèn)題。其他人則試圖將所謂的缺少調(diào)試工具解釋為智慧之舉和良好風(fēng)格。#t#

這些觀點(diǎn)都是誤解。Ruby明明是有調(diào)試工具的——實(shí)際上有很多。讓我們來(lái)看一看這些現(xiàn)有的工具,包括調(diào)試GUI、調(diào)試器實(shí)現(xiàn)和各種Ruby實(shí)現(xiàn)中的調(diào)試支持。

什么是調(diào)試器?

首先,讓我們搞清楚“調(diào)試器”實(shí)際上涉及了哪些東西?

調(diào)試的GUI和接口

當(dāng)然了,交互式調(diào)試器最重要的部分——至少對(duì)于用戶(hù)來(lái)說(shuō)——是用戶(hù)接口。用戶(hù)可以使用Ruby調(diào)試器的命令行接口,例如和Ruby標(biāo)準(zhǔn)庫(kù)一起提供的Rubinius調(diào)試器。它顯然可以用來(lái)調(diào)試代碼,只不過(guò)設(shè)置斷點(diǎn)或查看運(yùn)行狀態(tài)會(huì)比較麻煩。

IDE雖然有時(shí)在Ruby世界中不太受推崇,但它無(wú)疑令調(diào)試變得更簡(jiǎn)單了——畢竟,IDE就是集成開(kāi)發(fā)環(huán)境。集成對(duì)于調(diào)試來(lái)說(shuō)很重要,而IDE正是把代碼編輯和調(diào)試工具整合在一起了。你可以在源代碼編輯器中直接管理斷點(diǎn)——而不用記下代碼的行號(hào),進(jìn)入命令行調(diào)試器中,然后手工設(shè)置斷點(diǎn)。在IDE中,諸如基于行的單步調(diào)試之類(lèi)的功能也更加實(shí)用,可以正確的找到所打開(kāi)的文件的棧結(jié)構(gòu)和所在行。

帶有嵌入式腳本支持的IDE還允許對(duì)腳本進(jìn)行調(diào)試。例如 ,Eclipse的EclipseMonkey擴(kuò)展支持用JRuby寫(xiě)成的腳本。由于這些腳本和Eclipse IDE都運(yùn)行在同一個(gè)JVM上,由此調(diào)試器實(shí)例便可以被訪問(wèn)和控制了。

調(diào)試器協(xié)議還是連接到后端

把像IDE這樣的調(diào)試器用戶(hù)接口和調(diào)試器后端連接起來(lái)的一個(gè)簡(jiǎn)單方法是:使用命令行接口,并通過(guò)標(biāo)準(zhǔn)的stdin/stdout/stderr流來(lái)進(jìn)行控制。這樣,編輯器或者IDE的調(diào)試器支持就可以控制調(diào)試器,同時(shí)也讓用戶(hù)管理斷點(diǎn)變得更加方便了。

另外一個(gè)方法是采用線路(wire)協(xié)議,它允許通過(guò)某種模式的進(jìn)程通訊(IPC),現(xiàn)在一般是通過(guò)TCP/IP來(lái)連接到調(diào)試器。基于網(wǎng)絡(luò)的協(xié)議還允許GUI和調(diào)試器分布在不同的機(jī)器上,也就是說(shuō)可以使用本地的用戶(hù)接口來(lái)對(duì)遠(yuǎn)程機(jī)器進(jìn)行調(diào)試。

基于文本的或者至少基于文檔的簡(jiǎn)單調(diào)試協(xié)議也允許使用任何語(yǔ)言來(lái)編寫(xiě)調(diào)試進(jìn)程腳本。實(shí)際上,連接到Ruby調(diào)試器和打開(kāi)telnet一樣簡(jiǎn)單。debug-commons和DBGp命令的協(xié)議就是由單行字符串和XML應(yīng)答構(gòu)成的。

VM支持還是調(diào)試后端

為了支持?jǐn)帱c(diǎn)等功能,語(yǔ)言運(yùn)行時(shí)至少得提供監(jiān)視和控制執(zhí)行的支持。可以簡(jiǎn)單地像Ruby的跟蹤(tracing)功能一樣:在一行Ruby代碼執(zhí)行之前,Ruby調(diào)試器會(huì)調(diào)用一個(gè)叫做set_trace_func的回調(diào)函數(shù)。傳過(guò)去的參數(shù)包括即將執(zhí)行的那行代碼的環(huán)境信息,比如行號(hào),所屬文件的名字和所屬的類(lèi)等等。

這些信息就足以實(shí)現(xiàn)斷點(diǎn)功能了:在一個(gè)斷點(diǎn)注冊(cè)表里面檢查文件名和行號(hào),看看是否被注冊(cè)了。 當(dāng)遇到一個(gè)斷點(diǎn)時(shí),執(zhí)行就被掛起,只要不從回調(diào)中返回即可——Ruby運(yùn)行時(shí)只能在回調(diào)返回后才能繼續(xù)運(yùn)行。基于這些,就可以實(shí)現(xiàn)單步調(diào)試等功能了。 雖然使用跟蹤功能可以實(shí)現(xiàn)一個(gè)調(diào)試器,但是在執(zhí)行每一行之前都要先執(zhí)行跟蹤回調(diào),顯然太慢了。理想地解決方案是僅在執(zhí)行有斷點(diǎn)的行時(shí)才引發(fā)斷點(diǎn)處理。

運(yùn)行時(shí)可以通過(guò)修改已加載的代碼來(lái)實(shí)現(xiàn)此功能——不論是AST還是操作碼(opcodes)——在有斷點(diǎn)的行上。有些語(yǔ)言的運(yùn)行時(shí)提供了內(nèi)建的調(diào)試支持,與執(zhí)行機(jī)制整合在一起。Java和.NET的二進(jìn)制代碼都提供調(diào)試信息(即從文件和行到字節(jié)代碼位置一個(gè)映射),讓內(nèi)建的調(diào)試支持能使用這些信息來(lái)進(jìn)行調(diào)試。

在Java世界中,例如,JVM配合JVM工具接口(JVM TI)一起實(shí)現(xiàn)了這個(gè)功能以及用來(lái)連接到JVM的Java調(diào)試線路協(xié)議(JDWP)。 還有一個(gè)方法是Rubinius調(diào)試器所使用的,它使用可訪問(wèn)和可修改的Ruby調(diào)試器代碼中的操作碼(Rubinius把Ruby源代碼先編譯成操作碼然后再執(zhí)行)。通過(guò)把一個(gè)一般操作碼替換成一個(gè)特殊操作碼來(lái)設(shè)置一個(gè)斷點(diǎn),而這個(gè)特殊操作碼則用來(lái)掛起當(dāng)前進(jìn)程并通知調(diào)試堆棧中的高層。 通過(guò)設(shè)置大量的基礎(chǔ)體系和管理數(shù)據(jù)結(jié)構(gòu)以供語(yǔ)言來(lái)訪問(wèn),語(yǔ)言本身就可以用來(lái)建立調(diào)試機(jī)制。

責(zé)任編輯:曹凱 來(lái)源: kuqin.com
相關(guān)推薦

2010-03-01 11:06:52

Python 調(diào)試器

2020-03-16 10:05:13

EmacsGUDLinux

2011-08-31 16:39:06

Lua調(diào)試器

2023-02-28 11:39:55

CMake腳本項(xiàng)目

2011-08-31 16:51:12

Lua調(diào)試器

2009-06-23 11:05:05

Mircosoft C

2011-08-31 16:47:07

Lua調(diào)試器

2010-02-24 09:32:24

Python 調(diào)試器

2022-05-23 09:22:20

Go語(yǔ)言調(diào)試器Delve

2011-08-24 16:41:38

lua調(diào)試器

2011-08-24 11:08:09

Lua

2023-03-13 00:21:21

調(diào)試器斷點(diǎn)開(kāi)發(fā)者

2022-07-22 12:45:39

GNU

2011-08-25 16:34:27

Lua調(diào)試器

2010-07-23 15:37:22

Perl調(diào)試器用法

2017-04-19 21:35:38

Linux調(diào)試器工作原理

2011-02-22 11:07:24

Python

2017-06-28 14:21:22

Linux調(diào)試器斷點(diǎn)

2016-09-27 20:12:33

Android虛擬機(jī)Android動(dòng)態(tài)調(diào)試

2009-12-16 16:37:59

Ruby on Rai
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品videosex性欧美| 久久蜜桃av一区二区天堂| 欧美专区中文字幕| 性高爱久久久久久久久| 777奇米四色成人影色区| 国产精品视频二区三区| 欧美日韩在线一区| 绯色av一区二区| 久久久久久久久久久黄色| 亚洲成在线观看| 国产午夜大地久久| 国产成人一级电影| 中文字幕色呦呦| 激情综合网av| 亚洲mv在线看| 久久国产人妖系列| 中国一区二区三区| 高清av一区二区| 女人天堂av手机在线| 91一区二区在线观看| 黄色a级片免费| 久久久影视传媒| 老熟妇仑乱视频一区二区| 99久久婷婷国产综合精品电影| 夜夜添无码一区二区三区| 懂色一区二区三区免费观看| 欧美美女黄色网| 91网站黄www| 四虎最新地址发布| 亚洲成人7777| 在线观看麻豆| 精品无人国产偷自产在线| 99久久精品一区二区成人| 欧美日本在线视频中文字字幕| 日韩高清一级| 高清av免费一区中文字幕| 日韩精品免费专区| 久久久性生活视频| 亚洲欧美日本在线| 精品亚洲综合| 精品中文视频在线| 亚洲日本一区二区三区在线| 国产精品永久免费在线| 欧美一级久久| 国内外成人免费激情视频| 视频精品导航| 久久精品视频导航| 欧美色图激情小说| 欧美日韩一区二区视频在线| 国产精品2024| 男人j桶女人的网站| 日韩欧美国产成人| 国产美女福利在线观看| 中文字幕亚洲第一| 国产剧情在线观看一区| 一区二区日本视频| 日本中文字幕在线2020| 国产+人+亚洲| 日本不卡视频在线观看| 神马午夜dy888| 精品久久久久久久久久国产| 亚洲2020天天堂在线观看| 日韩精品久久| 亚洲欧美99| 综合分类小说区另类春色亚洲小说欧美| 美女做暖暖视频免费在线观看全部网址91 | 亚洲高清免费一级二级三级| 九七久久人人| 高清欧美性猛交xxxx| 中日韩男男gay无套| 国产成人手机视频| 91精品国产综合久久久久久| 精品视频成人| 日本午夜精品电影| 亚洲久本草在线中文字幕| 在线毛片观看| 91色精品视频在线| 亚洲三区在线| 欧美一区欧美二区| 国产午夜精品全部视频在线播放| 麻豆精品一区| 久久综合九九| 国产精品国模大尺度视频| 国产美女一区视频| 国产成+人+日韩+欧美+亚洲| 免费一级电影| 亚洲性无码av在线| 欧美/亚洲一区| 日韩 欧美 高清| 日韩视频免费观看高清完整版在线观看 | 国产午夜久久久久| 久久香蕉av| 91精品国产自产在线| 99re66热这里只有精品3直播| 九色porny在线| 国产精品久久综合av爱欲tv| 成人免费视频视频在线观看免费| av在线免费观看网址| 91精品国产自产在线| 国产精品污www在线观看| 国产资源在线观看入口av| 7777奇米亚洲综合久久| 成人免费在线播放视频| 久久精品黄色| 婷婷久久伊人| 91激情在线视频| 色爱综合网欧美| 九色porn| 欧美中文字幕在线观看| 26uuu亚洲综合色| 51一区二区三区| 无码人妻aⅴ一区二区三区日本| 日韩一级大片在线| 国内精品美女在线观看| 久久99久久久久久久噜噜| 亚洲欧美日韩在线观看a三区 | 日韩免费va| 日本一区高清不卡| 欧美制服丝袜第一页| 欧美残忍xxxx极端| 久草在线在线| 国产精品久久久久久久久久久久 | 在线视频精品| 好紧好硬好湿我太爽了| 久久久久日韩精品久久久男男| 99久久精品免费看| 精品欧美日韩精品| 久久久性生活视频| 欧美尺度大的性做爰视频| 久久久国产精华| 粉嫩精品导航导航| 好男人看片在线观看免费观看国语| 欧美一级电影久久| 亚洲国产成人精品视频| 999成人精品视频线3| 可以在线观看的黄色| 国产精品日本一区二区| 欧美日韩www| 蜜桃视频第一区免费观看| 美女搞黄视频在线观看| 国产一区二区片| 久久国产一区二区三区| 中文字幕欧美日韩一区| 亚洲品质自拍| 亚洲精品中字| 毛片在线视频播放| 亚洲精品成人a8198a| 一区二区视频在线免费| 精品少妇一区二区三区日产乱码 | 日日夜夜免费精品视频| caoporm超碰国产精品| 天堂av网在线| 99久久无色码| 日韩视频一区二区| 久色婷婷小香蕉久久| 91精品国产66| 羞羞的视频免费| 91精品国产综合久久香蕉的用户体验| 1024亚洲合集| 欧美午夜一区| 久热在线观看视频| www日韩视频| 成人免费自拍视频| 日韩美女视频一区二区在线观看| 成人午夜大片免费观看| 亚洲另类av| 午夜小视频在线| 好吊色视频988gao在线观看| 国精产品一区一区三区有限在线| 岛国av一区二区三区| 蜜臀91精品一区二区三区| 深夜福利一区| а√天堂中文在线资源bt在线| 一区二区三区四区视频在线| 欧美高清在线观看| 在线视频欧美区| 成人亚洲精品久久久久软件| 成人在线免费观看网站| 成人免费图片免费观看| 国产成人综合美国十次| 老司机精品福利在线观看| 久久久成人精品| 欧美午夜理伦三级在线观看| 本田岬高潮一区二区三区| 小小影院久久| 亚洲成人高清| aaa在线免费观看| 欧美视频免费播放| 精品在线视频一区二区| 久久免费视频在线| 欧美videossexotv100| 亚洲精品综合在线| 国模一区二区三区白浆| 色欧美自拍视频| avtt久久| 国产在线1区| 国产剧情演绎av| 成人午夜免费在线视频| **亚洲第一综合导航网站| 欧美老女人xx|