电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Sco Unix下用dbxtra調(diào)試C程序

瀏覽:142日期:2024-06-30 08:16:22

在sco Unix下編程大多離不開C語(yǔ)言,即使是數(shù)據(jù)庫(kù)應(yīng)用也有很多是與c搭配使用的,例如informix esql/c 就可以在c語(yǔ)言中嵌入sql 語(yǔ)句。很多人認(rèn)為在unix下寫程序是件很痛苦的事情,其中一個(gè)很重要原因是不知道在unix下怎樣調(diào)試程序。其實(shí)在sco unix源碼調(diào)試器是dbxtra或dbXtra,Linux下是gdb。它們類似turbo c的調(diào)試器,可以跟蹤源碼變量。在unix 下調(diào)試程序有如下傳統(tǒng)方法

一、在要調(diào)試語(yǔ)句之前,輸出要調(diào)試的變量,利用printf()函數(shù)。

二、寫日志文件,把結(jié)果輸出到文件中避免屏幕混亂,利用fprintf()函數(shù)。

三、利用sco 內(nèi)置調(diào)試器dbxtra或dbXtra。

dbxtra 適用字符界面,在sco unix的圖形界面用dbXtra。(編按:請(qǐng)注意大小寫)

以下是dbxtra基本命令: c cont 在斷點(diǎn)后繼續(xù)執(zhí)行 d delete 刪除所設(shè)斷點(diǎn) h help 幫助 e edit 編輯源程序 n next 源程序區(qū)的內(nèi)容向下翻一屏。 p print 顯示變量 q quit 退出dbxtra r run 運(yùn)行程序,直到遇上設(shè)置的斷點(diǎn) rr rerun 再次運(yùn)行 s step 單步運(yùn)行 st stop 設(shè)置斷點(diǎn) j status 顯示當(dāng)前斷點(diǎn) t where 顯示當(dāng)前狀態(tài),列出所有設(shè)置的變量值 di display 開顯示窗,用于查看變量 ud undisplay 刪除顯示窗的條目 f forward 源程序區(qū)的內(nèi)容向上 翻一屏。 B backward 源程序區(qū)的內(nèi)容向下 翻一屏。 Stopi stop inst 設(shè)置斷點(diǎn) tracei trace inst跟蹤子程序

dbxtra [options] [objectfile ] dbxtra 在啟動(dòng)時(shí)有個(gè)參數(shù)-Idir值得一提.我們?cè)诰帉懸粋€(gè)較大程序的時(shí)候,通常源程序和編譯生成的可執(zhí)行文件都放在不同的目錄中,這樣便于管理。默認(rèn)dbxtra將在可執(zhí)行文件所在的目錄下找匹配c的源程序。當(dāng)我們啟動(dòng)時(shí),指定-I參數(shù),dbxtra就會(huì)到我們指定的目錄下找匹配的c程序。 例如: dbxtra -I'workc' program1

源程序在用cc編譯時(shí)要帶上-g 參數(shù),這樣是加上符號(hào)表等調(diào)試信息。只有這樣編譯過的文件,dbxtra才可以調(diào)試。調(diào)試信息使源代碼和機(jī)器碼關(guān)聯(lián)。

下面這個(gè)C程序輸出結(jié)果和我們的預(yù)想結(jié)果不一樣,說(shuō)明某些地方有錯(cuò)誤。我們用調(diào)試器來(lái)調(diào)試它:

程序一:

t.c main() { int i=10 ,*p1; float j=1.5,*p2; p1=&i; p2=&j; p2=p1; printf('%d,%dn',*p1,*p2); }

首先帶上-g參數(shù)編譯 cc -g -o t t.c 啟動(dòng)調(diào)試器 dbxtra t 屏幕顯示: 1.main() 2.{ int i=10 ,*p1; 3. float j=1.5,*p2; 4. p1=&i; 5. p2=&j; 6. p2=p1; 7. printf('%d,%dn',*p1,*p2); 8.} C[browse] File:t.c Func.- Readubg symbolic information Type 'help' for help (dbxtra) (dbxtra)

設(shè)置斷點(diǎn): (dbxtra)stop at 5 運(yùn)行: (dbxtra) run 程序自動(dòng)在第5行停下。 這時(shí)我們可以看變量的值。 (dbxtra) print *p1

單步執(zhí)行。 (dbxtra) step 程序?qū)?zhí)行第5行源碼,指針將移到第6行。 (dbxtra) print *p2

(dbxtra) step 程序執(zhí)行了第6行源碼后,將指針移到第7行。 (dbxtra) print *p1 , *p2 我們發(fā)現(xiàn) 在執(zhí)行了第6行源碼后,*p1,*p2的值就不對(duì)了,所以問題就出在第6行上。仔細(xì)檢查后發(fā)現(xiàn)指針p1指向整型,指針p2指向?qū)嵭汀K鼈冎g的賦值要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。這種錯(cuò)誤在C程序中是很常見的。 有時(shí)我們?cè)谡{(diào)試一些程序時(shí),要在整個(gè)程序運(yùn)行中時(shí)刻監(jiān)視莫些變量的值,例如程序一中我們要時(shí)刻了解*p1,*p2的值,除了在每一行程序執(zhí)行完后,打print *p1,*p2外,還可以開一個(gè)顯示窗口。

(dbxtra)display *p1,*p2

用undisplay 刪掉不想要的變量。

有些程序運(yùn)行時(shí)要帶參數(shù),mycat /etc/passwd 在調(diào)試時(shí)候

(dbxtra) run '/etc/passwd'

再運(yùn)行時(shí),無(wú)需再寫一遍參數(shù)。

(dbxtra) rerun

在涉及到curses庫(kù)編程或屏幕有大量的人機(jī)界面時(shí),為了調(diào)試方便,我們可以把程序輸出結(jié)果重定向到個(gè)虛屏。

(dbxtra) run >/dev/tty03

當(dāng)然要先把tty03 disable 掉。(disable tty03)

dbxtra還有很多高級(jí)的用法,有興趣的讀者可以參照dbxtra本身的help,進(jìn)一步研究。

標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 中央空调温控器_风机盘管温控器_智能_液晶_三速开关面板-中央空调温控器厂家 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 塑胶跑道施工-硅pu篮球场施工-塑胶网球场建造-丙烯酸球场材料厂家-奥茵 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 打造全球沸石生态圈 - 国投盛世 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 双效节能浓缩器-热回流提取浓缩机组-温州市利宏机械 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 深圳市八百通智能技术有限公司官方网站 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟| 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 金库门,金库房,金库门厂家,金库门价格-河北特旺柜业有限公司 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 |