CN107506301A - 一种调试后台服务程序的方法及*** - Google Patents
一种调试后台服务程序的方法及*** Download PDFInfo
- Publication number
- CN107506301A CN107506301A CN201710730519.9A CN201710730519A CN107506301A CN 107506301 A CN107506301 A CN 107506301A CN 201710730519 A CN201710730519 A CN 201710730519A CN 107506301 A CN107506301 A CN 107506301A
- Authority
- CN
- China
- Prior art keywords
- background service
- service program
- disk
- journal file
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种调试后台服务程序的方法,包括:通过启动strace程序跟踪指定后台服务程序,记录和解析所述后台服务程序在指定时间段内所有接收到的信号值以及所有***调用,启动日志记录所述后台服务程序在所述指定时间段内的运行情况,并将后台服务程序的运行情况写入缓冲区并反馈写入完成的信息给后台服务程序,再以异步方式将日志文件存放到磁盘。本申请在获得了后台服务程序运行情况的同时对后台服务程序来说日志模块没有io等待时间,把对后台服务程序的影响降低到了最小,不影响原有的后台服务程序时序,也不会改变后台服务程序行为。本申请同时还提供了一种调试后台服务程序的***,具有上述有益效果。
Description
技术领域
本申请涉及计算机软件***,特别涉及调试一种后台服务程序的方法及***。
背景技术
后台服务程序指运行在Linux、Unix主机之上的以daemon方式启动,并且不需要界面进行交互等待方式运行的为完成特定任务实现的程序。后台服务程序的特点是多进程、多线程并发,多个客户端程序并发运行在多个主机上,通常不能以加断点的形式来进行调试。同时在调试一些有关性能的bug时,如果简单的通过增加日志的方式追踪程序运行情况并不能找到问题原因或者解决问题,因为日志落盘会影响程序原来的运行方式,被影响后的运行方式甚至无法重现bug。
因此,如何在不影响后台服务程序运行的基础上调试后台服务程序是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种调试后台服务程序的方法及***,该方法不影响后台服务程序的运行。
为解决上述技术问题,本申请提供一种调试后台服务程序的方法,该方法包括:
启动strace程序跟踪指定后台服务程序,记录和解析所述后台服务程序在指定时间段内所有接收到的信号值以及所有***调用;
启动日志记录所述后台服务程序在所述指定时间段内的运行情况;
将所述运行情况以日志文件形式写入缓冲区中,并将写入完成信息反馈给所述后台服务程序;
将所述日志文件以异步方式存放到磁盘。
可选的,将所述日志文件以异步方式存放到磁盘,包括:
判断所述后台服务程序的bug是否与磁盘io有关;
若所述后台服务程序的bug与所述磁盘io有关,则将所述日志文件通过异步网络方式转存到其他主机,若无关,则将所述日志文件通过异步io方式存放到本地磁盘。
可选的,所述指定时间段包括:
客户端提交事件与服务器响应事件之间的时间段。
本申请还提供一种调试后台服务程序的***,该***包括:
启动模块,用于启动strace程序跟踪指定后台服务程序,记录和解析所述后台服务程序在指定时间段内所有接收到的信号值以及所有***调用;启动日志记录所述后台服务程序在所述指定时间段内的运行情况;
写入反馈模块,用于将所述运行情况以日志文件形式写入缓冲区中,并将写入完成信息反馈给所述后台服务程序;
存放模块,用于将所述日志文件以异步方式存放到磁盘。
可选的,所述存放模块包括:
判断子模块,用于判断所述后台服务程序的bug是否与所述磁盘io有关;
网络传输子模块,用于当所述后台服务程序的bug与所述磁盘io有关时,将所述日志文件通过异步网络方式转存到所述其他主机;
io子模块,用于当所述后台服务程序的bug与所述磁盘io无关时,将所述日志文件通过异步io方式存放到所述本地磁盘。
可选的,所述启动模块包括:
时间段确定子模块,用于确定所述指定时间段的起止时间点;所述指定时间段包括客户端提交事件与服务器响应事件之间的时间段。
本申请所提供的一种调试后台服务程序的方法,通过启动strace程序跟踪指定后台服务程序,记录和解析所述后台服务程序在指定时间段内所有接收到的信号值以及所有***调用,启动日志记录所述后台服务程序在所述指定时间段内的运行情况,并将后台服务程序的运行情况写入缓冲区并反馈写入完成的信息给后台服务程序,再以异步方式将日志文件存放到磁盘。
现有技术中日志的落盘io时间会影响程序原有的运行方式,甚至无法重现bug。而本申请在获得了后台服务程序运行情况的同时对后台服务程序来说日志模块没有io等待时间,把对后台服务程序的影响降低到了最小,不影响原有的后台服务程序时序,也不会改变后台服务程序行为。本申请同时还提供了一种调试后台服务程序的***,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种调试后台服务程序的方法的流程图;
图2为图1所提供的一种调试后台服务程序的方法中S104的一种实际表现方式的流程图;
图3为本申请实施例所提供的一种调试后台服务程序的方法的一种实际表现方式的流程图;
图4为本申请实施例所提供的一种调试后台服务程序的***的结构图;
图5为本申请实施例所提供的另一种调试后台服务程序的***的结构图。
具体实施方式
本申请的核心是提供一种调试后台服务程序的方法及***,该方法启动strace程序跟踪指定后台服务程序,记录和解析所述后台服务程序在指定时间段内所有接收到的信号值以及所有***调用,并将后台服务程序的运行情况写入缓冲区并反馈写入完成的信息给后台服务程序,再以异步方式将日志文件存放到磁盘,对后台服务程序来说日志模块没有io等待时间,把对后台服务程序的影响降低到了最小,不影响原有的后台服务程序时序,也不会改变后台服务程序行为。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种调试后台服务程序的方法的流程图。
其具体包括以下步骤:
S101:启动strace程序跟踪指定后台服务程序,记录和解析该后台服务程序在指定时间段内所有接收到的信号值以及所有***调用;
Strace程序是一个集诊断、调试、统计与一体的工具,可以用来对后台服务程序的***调用和信号传递的跟踪结果来对后台服务程序进行分析,以达到解决问题或者是了解后台服务程序工作过程的目的。在后台服务程序运行过程中在需要追踪的时候启动strace程序跟踪指定的后台服务程序,strace程序会记录和解析这个时间段内后台服务程序的所有***调用以及所接收到的所有的信号值。strace程序不光能追踪***调用,还可以通过使用参数-c将进程所有的***调用做一个统计分析;
在后台服务程序将要执行被跟踪的操作之前通过starce-p pid的方式跟踪指定进程号的后台服务程序,同时还有一些参数可用来统时间段确定间和跟踪指定的调用,参数如下所示:
-c统计每一***调用的所执行的时间,次数和出错的次数等;
-f跟踪由fork调用所产生的子进程;
-r打印出相对时间关于,每一个***调用;
-t在输出中的每一行前加上时间信息;
-tt在输出中的每一行前加上时间信息,微秒级;
-T显示每一调用所耗的时间;
-e trace=set只跟踪指定的***调用,例如:-e trace=open,close,rean,write表示只跟踪这四个***调用,默认的为set=all;
-e trace=file只跟踪有关文件操作的***调用;
-e trace=process只跟踪有关进程控制的***调用;
-e trace=network跟踪与网络有关的所有***调用;
-e strace=signal跟踪所有与***信号有关的***调用;
-e trace=ipc跟踪所有与进程通讯有关的***调用;
-e read=set输出从指定文件中读出的数据,例如:-e read=3,5-e write=set输出写入到指定文件中的数据;
-o filename将strace的输出写入文件filename。
S102:启动日志记录该后台服务程序在该指定时间段内的运行情况;
对于后台服务程序只通过strace程序显然无法解决所有bug,又因为无法使用加断点的方式来跟踪后台服务程序,因此日志成为必需的一个跟踪后台服务程序的手段。
S103:将运行情况以日志文件形式写入缓冲区中,并将写入完成的信息反馈给后台服务程序;
设立缓冲区的目的在于日志文件写入缓冲区时会反馈写入完成的信息给后台服务程序,而不是同步方式传输到磁盘,对于后台服务程序来说没有io等待时间,相对应的也就把对后台服务程序的影响降低到了最小。
S104:将日志文件以异步方式存放到磁盘。
本步骤建立在S103后,为防止日志落盘行为影响后台服务程序,当指定后台服务程序运行结束后,将日志文件从缓冲区中以异步方式存放到磁盘。
基于上述技术方案,本申请实施例提供的测调试后台服务程序的方法,启动strace程序跟踪指定后台服务程序,记录和解析后台服务程序在指定时间段内所有接收到的信号值以及所有***调用,将后台服务程序的运行情况写入缓冲区并反馈写入完成的信息给后台服务程序,再以异步方式将日志文件存放到磁盘,对后台服务程序来说日志模块没有io等待时间,把对后台服务程序的影响降低到了最小,不影响原有的后台服务程序时序,也不会改变后台服务程序行为。
下面请参见图2,图2为图1所示流程图中S104的一个具体实施方式流程图。
本实施例是针对上一实施例的S104,是对S104描述的内容做出了具体实现方式的描述,其具体包括以下步骤:
S201:判断后台服务程序的bug是否与磁盘io有关;
若该bug与磁盘io有关,则进入步骤S202;若该bug与磁盘io无关,则进入步骤S203;
当所追踪的后台服务程序的bug与磁盘io有关时,为防止日志文件的落盘行为影响该bug的重现,采用异步网络方式将日志文件发送到别的主机,这样就避免了日志文件在落盘过程中所用的时间对后台服务程序造成影响;同理,当所追踪的后台服务程序的bug与磁盘io无关时,采用异步io方式将日志文件存放到本地磁盘。
S202:将日志文件通过异步网络方式转存到其他主机;
S203:将日志文件通过异步io方式存放到本地磁盘。
下面请参见图3,图3为本申请实施例所提供的一种调试后台服务程序的方法的一种实际表现方式的流程图。
当需要调试跟踪后台服务程序两个时间点301和302时,在客户端的提交动作之前启动strace跟踪并且打开异步日志,在服务器响应动作之后停止strace跟踪程序和关闭异步日志输出,将日志以异步方式存放到磁盘。
下面请参见图4,图4为本申请实施例所提供的一种调试后台服务程序的***的结构图。
该***可以包括:
启动模块100,用于启动strace程序跟踪指定后台服务程序,记录和解析该后台服务程序在指定时间段内所有接收到的信号值以及所有***调用;启动日志记录该后台服务程序在指定时间段内的运行情况;
写入反馈模块200,用于将运行情况以日志文件形式写入缓冲区中,并将写入完成信息反馈给该后台服务程序;
存放模块300,用于将日志文件以异步方式存放到磁盘。
请参见图5,图5为本申请实施例所提供的另一种调试后台服务程序的***的结构图,进一步的,该存放模块还可以包括:
判断子模块,用于判断该后台服务程序的bug是否与磁盘io有关;
网络传输子模块,用于当该后台服务程序的bug与磁盘io有关时,将该日志文件通过异步网络方式转存到其他主机;
io子模块,用于当该后台服务程序的bug与磁盘io无关时,将该日志文件通过异步io方式存放到本地磁盘。
进一步的,该启动模块还可以包括:
时间段确定子模块,用于确定该指定时间段的起止时间点。
以上***中的各个组成部分可应用于以下的一个实际流程中:
通过时间段确定子模块确定指定时间段的起止时间点,通过启动模块启动strace程序跟踪指定后台服务程序,程序记录和解析该后台服务程序在指定时间段内所有接收到的信号值以及所有***调用;启动日志记录该后台服务程序在该指定时间段内的运行情况;通过写入反馈模块将该运行情况以日志文件形式写入缓冲区中,并将写入完成信息反馈给该后台服务程序;通过判断模块判断该后台服务程序的bug是否与磁盘io有关;当该后台服务程序的bug与磁盘io有关时,通过网络传输子模块将该日志文件以异步网络方式转存到其他主机;当该后台服务程序的bug与磁盘io无关时,通过io子模块将该日志文件以异步io方式存放到本地磁盘。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的调试后台服务程序的方法及***进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (6)
1.一种调试后台服务程序的方法,其特征在于,包括:
启动strace程序跟踪指定后台服务程序,记录和解析所述后台服务程序在指定时间段内所有接收到的信号值以及所有***调用;
启动日志记录所述后台服务程序在所述指定时间段内的运行情况;
将所述运行情况以日志文件形式写入缓冲区中,并将写入完成信息反馈给所述后台服务程序;
将所述日志文件以异步方式存放到磁盘。
2.根据权利要求1所述的方法,其特征在于,将所述日志文件以异步方式存放到磁盘,包括:
判断所述后台服务程序的bug是否与磁盘io有关;
若所述后台服务程序的bug与所述磁盘io有关,则将所述日志文件通过异步网络方式转存到其他主机,若无关,则将所述日志文件通过异步io方式存放到本地磁盘。
3.根据权利要求1所述的方法,其特征在于,所述指定时间段包括:
客户端提交事件与服务器响应事件之间的时间段。
4.一种调试后台服务程序的***,其特征在于,包括:
启动模块,用于启动strace程序跟踪指定后台服务程序,记录和解析所述后台服务程序在指定时间段内所有接收到的信号值以及所有***调用;启动日志记录所述后台服务程序在所述指定时间段内的运行情况;
写入反馈模块,用于将所述运行情况以日志文件形式写入缓冲区中,并将写入完成信息反馈给所述后台服务程序;
存放模块,用于将所述日志文件以异步方式存放到磁盘。
5.根据权利要求4所述的***,其特征在于,所述存放模块包括:
判断子模块,用于判断所述后台服务程序的bug是否与所述磁盘io有关;
网络传输子模块,用于当所述后台服务程序的bug与所述磁盘io有关时,将所述日志文件通过异步网络方式转存到所述其他主机;
io子模块,用于当所述后台服务程序的bug与所述磁盘io无关时,将所述日志文件通过异步io方式存放到所述本地磁盘。
6.根据权利要求4所述的***,其特征在于,所述启动模块包括:
时间段确定子模块,用于确定所述指定时间段的起止时间点;所述指定时间段包括客户端提交事件与服务器响应事件之间的时间段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710730519.9A CN107506301A (zh) | 2017-08-23 | 2017-08-23 | 一种调试后台服务程序的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710730519.9A CN107506301A (zh) | 2017-08-23 | 2017-08-23 | 一种调试后台服务程序的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107506301A true CN107506301A (zh) | 2017-12-22 |
Family
ID=60691493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710730519.9A Pending CN107506301A (zh) | 2017-08-23 | 2017-08-23 | 一种调试后台服务程序的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107506301A (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487596A (zh) * | 2016-10-26 | 2017-03-08 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
-
2017
- 2017-08-23 CN CN201710730519.9A patent/CN107506301A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487596A (zh) * | 2016-10-26 | 2017-03-08 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
Non-Patent Citations (1)
Title |
---|
APACHE323: "strace调试", 《HTTPS://BLOG.51CTO.COM/APACHE323/1758175》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7571069B1 (en) | Data assurance workflow derivation and execution | |
US20210279577A1 (en) | Testing of Computing Processes Using Artificial Intelligence | |
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及*** | |
US8234633B2 (en) | Incident simulation support environment and business objects associated with the incident | |
CN101676919B (zh) | 用于合并覆盖数据的eda覆盖日志的方法和装置 | |
CN101241467B (zh) | 一种面向Web应用的自动化白盒测试方法 | |
US20100180260A1 (en) | Method and system for performing an automated quality assurance testing | |
US20130132933A1 (en) | Automated compliance testing during application development | |
US8661125B2 (en) | System comprising probe runner, monitor, and responder with associated databases for multi-level monitoring of a cloud service | |
CN110768872B (zh) | 巡检方法、***、装置、计算机设备和存储介质 | |
US9336119B2 (en) | Management of performance levels of information technology systems | |
US8972783B2 (en) | Systems and methods for fast detection and diagnosis of system outages | |
Alrawashdeh et al. | Evaluating the quality of software in ERP systems using the ISO 9126 model | |
CN101676920A (zh) | 用于合并覆盖数据的eda覆盖日志的方法和装置 | |
Roehm et al. | Monitoring user interactions for supporting failure reproduction | |
US20120222009A1 (en) | Defective code warning resolution analysis | |
CN112241370B (zh) | 一种api接口类的校验方法、***及装置 | |
CN112685672B (zh) | 页面会话行为轨迹的回溯方法、装置及电子设备 | |
US9892028B1 (en) | System and method for debugging of webcasting applications during live events | |
CN108804279A (zh) | 修改日志打印等级的方法及应用设备 | |
CN110413517A (zh) | 一种测试报告生成方法、装置、电子设备和存储介质 | |
CN111612347A (zh) | 一种综合联调管理***、方法及终端 | |
WO2016131308A1 (zh) | web界面生成控制方法及装置 | |
CN107506301A (zh) | 一种调试后台服务程序的方法及*** | |
CN105653445A (zh) | 一种满足do-178c测试结果的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171222 |