简单的c程序调试日志

简单的c程序调试日志

ID:30442650

大小:87.91 KB

页数:19页

时间:2018-12-30

简单的c程序调试日志_第1页
简单的c程序调试日志_第2页
简单的c程序调试日志_第3页
简单的c程序调试日志_第4页
简单的c程序调试日志_第5页
资源描述:

《简单的c程序调试日志》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、简单的C程序调试日志想了解更多请登陆中山大学新华学院Thiscanbesolvedbylettingthelogclassstoreastaticintegerholdingthestackdepth.虽然仍有可能推断出该调用链,输出格式不到任何竭尽全力使用户很容易这样做。这是解决让log类存储静态整数堆栈深度举行。Byconvertingthestackdepthtoanindentationtheoutputcanbeformattedtoshowthecallchain.通过转换堆栈压痕深度的一链的输出的格式可以显示呼叫。Sinceitissto

2、redinastaticmember,eachinstanceofthelogclasssimplyincrementsitinitsconstructor,anddecrementsitinitsdestructor.因为它是存储在一个静态成员,每个实例的log类的构造简单增量它,它和它的析构递减研究。Usingthistechnique,theoutputbecomesmorereadable:使用这种技术,输出变得更加清晰可辨:想了解更多请登陆中山大学新华学院论坛Theloggingstatementsrequiredtogettheoutput

3、abovewouldbesomethinglikethis:该记录必须得到上面的输出会是这样的语句:CollapseCopyCodeintbar()诠释栏(){(DEBUG_METHOD("bar");DEBUG_METHOD("酒吧");//Dobarlogic//做酒吧逻辑return1;返回1;})voidfoo()无效富(){(DEBUG_METHOD("foo");DEBUG_METHOD("富");switch(bar())开关(巴()){(case0:案件0://Do0stuff,andreturnimmediately//做0的东西,并

4、立即返回return;返回;case1:案例一://Do1stuffandcontinue//做第一件东西,并继续break;打破;default:默认值:throwstd:exception("failed");扔性病:例外("失败");})//additionallogic//额外的逻辑})intmain(int/*argc*/,char*/*argv*/)国际主要(诠释/*argc*/,焦炭*/*argv中获取*/){(DEBUG_METHOD("main");DEBUG_METHOD("主");foo();美孚();return0;返回0;})

5、Noticethatregardlessofhoworwherethefoomethodexists,thelogoutputisthesameastheexitoutputiswrittenonscopecompletionofthelogobjectinstanciatedatthetopofeverymethodusingtheDEBUG_METHODmacro.请注意,不论如何或在foo法存在,日志输出是输出相同的出口范围是写在完成log对象的实例化以后,在使用前法每DEBUG_METHOD宏。Executiontime执行时间Inthisde

6、buglog,itisalsopossibletogetthemethodexitoutputtoincludetheexecutiontimeoftheloggedmethod(includinganyofitschildren).Thisisdonebystoringthecurrenttimewhenthelogobjectisinstanciated,andthensubtractingthisfromthetimeofdestruction.在此调试日志,也有可能退出该方法得到的输出包括其子女的执行时间的记录方法(包括任何)。这是通过存储当前

7、的时候log对象实例化,然后减去这从毁灭的时间。TherearemanywaystogetatimestampinC++,I'vedecidedtogowiththeclock()methodfoundintime.h.Asincludingthatperticularheadermightnotbepartoftheloggedapplication,itispossibletodisablethetimingcompletely,orrather,ithastobeexplicitlyenabledbydefiningDEBUG_LOG_ENABL

8、E_TIMING.有很多方法可以得到一个在C++时间戳,我决定去与clock()中找到方法ti

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。