CN111090582A - 错误代码定位方法、装置、存储介质及电子设备 - Google Patents
错误代码定位方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111090582A CN111090582A CN201911158130.7A CN201911158130A CN111090582A CN 111090582 A CN111090582 A CN 111090582A CN 201911158130 A CN201911158130 A CN 201911158130A CN 111090582 A CN111090582 A CN 111090582A
- Authority
- CN
- China
- Prior art keywords
- code
- file
- source code
- error
- code file
- 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
Images
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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种错误代码定位方法、装置、存储介质及电子设备,所述方法包括:若在压缩代码文件的运行过程中生成了错误消息,则根据所述错误消息,确定所述压缩代码文件中错误代码的位置信息;根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,其中,所述目标映射关系记录有所述错误代码的位置信息、和源代码文件中与所述错误代码对应的源代码的位置信息之间的位置映射关系;根据所述目标映射关系,确定所述源代码文件中与所述错误代码对应的所述源代码的位置信息。这样,可以准确定位产生错误的源代码,便于运维人员进一步定位故障原因,并对其进行修复。
Description
技术领域
本公开涉及计算机软件领域,具体地,涉及一种错误代码定位方法、装置、存储介质及电子设备。
背景技术
随着计算机网络技术的发展,业务人员可通过轻应用平台按需定义表单,无需编码,且通过浏览器、移动终端即可轻松制表,并可以通过二维码、URL共享、群链接、邮件推送等方式发布,从而实现了数据采集的功能。另外,轻应用平台中的表单资源文件可由代理商客户进一步扩展,并集成到轻应用平台上。但是,表单在应用的过程中,请求的资源文件较多,导致渲染速度较慢。为了解决表单渲染速度慢的问题,以及为了保证代码的安全性,业务人员及代理商客户拿到的版本中的表单资源文件都是压缩版,这就使得实际运行的代码不同于开发的源代码,导致在运行环境中出错后,根据压缩版的代码,运维人员难以定位问题,也就难以为代理商客户和业务人员解决问题。
发明内容
本公开的目的是提供一种错误代码定位方法、装置、存储介质及电子设备。
为了实现上述目的,根据本公开实施例的第一方面,提供一种错误代码定位方法,所述方法包括:
若在压缩代码文件的运行过程中生成了错误消息,则根据所述错误消息,确定所述压缩代码文件中错误代码的位置信息;
根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,其中,所述目标映射关系记录有所述错误代码的位置信息、和源代码文件中与所述错误代码对应的源代码的位置信息之间的位置映射关系;
根据所述目标映射关系,确定所述源代码文件中与所述错误代码对应的所述源代码的位置信息。
可选地,所述压缩代码文件中的每一代码具有对应的行标识和列标识;所述错误代码的位置信息包括所述错误代码对应的行标识和列标识;
所述扩展文件包括多个映射关系,每个所述映射关系与所述压缩代码文件中的每一代码一一对应,对应于同一行代码的映射关系被分成一组,所述映射关系包括:所述源代码文件的标识信息,该映射关系对应的代码的列标识,所述源代码文件中与该映射关系对应的代码对应的源代码的行标识和列标识;
所述根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,包括:
根据所述错误代码的行标识,从所述扩展文件中确定出与该行标识对应的那一组映射关系;
根据所述错误代码的列标识,从确定出的那一组映射关系中,进一步确定出包含所述错误代码的列标识的映射关系,该映射关系作为所述目标映射关系。
可选地,在确定出所述源代码文件中与所述错误代码对应的所述源代码的位置信息之后,所述方法还包括:
展示所述源代码文件的标识、以及与所述错误代码对应的所述源代码的位置信息。
可选地,所述扩展文件通过如下方式生成:
遍历所述源代码文件的每一代码,并记录所述源代码文件的每一代码的位置信息;
对所述源代码文件的每一代码进行压缩,以获得相对应的压缩代码,并记录该压缩代码在压缩代码文件中的位置信息;
将所述源代码文件的每一代码的位置信息和所述源代码文件的每一代码的压缩代码在所述压缩代码文件中的位置信息一一对应,以形成多个映射关系;
基于所述多个映射关系,生成与所述压缩代码文件对应的扩展文件。
可选地,所述源代码文件包括以下中的一者或多者:表单组件、表单引擎文件、第三方上传的文件。
可选地,所述扩展文件还包括与所述源代码文件对应的产品类型和产品版本号;
所述方法还包括:
若在所述压缩代码文件的运行过程中生成了错误消息,则根据所述产品类型和产品版本号,确定所述源代码文件的存储地址;
通过所述源代码文件的存储地址查找所述源代码文件。
根据本公开实施例的第二方面,提供一种错误代码定位的装置,所述装置包括:
第一确定模块,用于若在压缩代码文件的运行过程中生成了错误消息,则根据所述错误消息,确定所述压缩代码文件中错误代码的位置信息;
第二确定模块,用于根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,其中,所述目标映射关系记录有所述错误代码的位置信息、和源代码文件中与所述错误代码对应的源代码的位置信息之间的位置映射关系;
第三确定模块,用于根据所述目标映射关系,确定所述源代码文件中与所述错误代码对应的所述源代码的位置信息。
可选地,所述压缩代码文件中的每一代码具有对应的行标识和列标识;所述错误代码的位置信息包括所述错误代码对应的行标识和列标识;
所述扩展文件包括多个映射关系,每个所述映射关系与所述压缩代码文件中的每一代码一一对应,对应于同一行代码的映射关系被分成一组,所述映射关系包括:所述源代码文件的标识信息,该映射关系对应的代码的列标识,所述源代码文件中与该映射关系对应的代码对应的源代码的行标识和列标识;
所述第二确定模块包括:
第一确定子模块,用于根据所述错误代码的行标识,从所述扩展文件中确定出与该行标识对应的那一组映射关系;
第二确定子模块,用于根据所述错误代码的列标识,从确定出的那一组映射关系中,进一步确定出包含所述错误代码的列标识的映射关系,该映射关系作为所述目标映射关系。
可选地,所述装置还包括:
展示模块,用于在确定出所述源代码文件中与所述错误代码对应的所述源代码的位置信息之后,展示所述源代码文件的标识、以及与所述错误代码对应的所述源代码的位置信息。
可选地,所述扩展文件通过如下方式生成:
遍历所述源代码文件的每一代码,并记录所述源代码文件的每一代码的位置信息;
对所述源代码文件的每一代码进行压缩,以获得相对应的压缩代码,并记录该压缩代码在压缩代码文件中的位置信息;
将所述源代码文件的每一代码的位置信息和所述源代码文件的每一代码的压缩代码在所述压缩代码文件中的位置信息一一对应,以形成多个映射关系;
基于所述多个映射关系,生成与所述压缩代码文件对应的扩展文件。
可选地,所述扩展文件还包括与所述源代码文件对应的产品类型和产品版本号;
所述装置还包括:
第四确定模块,用于若在所述压缩代码文件的运行过程中生成了错误消息,则根据所述产品类型和产品版本号,确定所述源代码文件的存储地址;
查找模块,用于通过所述源代码文件的存储地址查找所述源代码文件。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面提供的所述错误代码定位方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面提供的所述错误代码定位方法的步骤。
在本公开中,若在压缩代码文件的运行过程中生成了错误消息,则根据该错误消息确定压缩代码文件中错误代码的位置信息。之后,根据错误代码的位置信息,从与压缩代码文件对应的扩展文件中确定目标映射关系。由于该目标映射关系记录有错误代码的位置信息、和源代码文件中与该错误代码对应的源代码的位置信息之间的位置映射关系,因此,能够根据该目标映射关系,确定源代码文件中与该错误代码对应的源代码的位置信息。这样,可以准确定位产生错误的源代码,便于运维人员进一步定位故障原因,并对其进行修复。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为本公开一示例性实施例示出的错误代码定位方法的流程图。
图2为本公开一示例性实施例示出的扩展文件生成方式的流程图。
图3为本公开另一示例性实施例示出的错误代码定位方法的流程图。
图4为本公开一示例性实施例示出的错误代码定位装置的框图。
图5为本公开一示例性实施例示出的一种电子设备的框图。
图6为本公开一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
相关技术中,由于表单在应用的过程中,请求的资源多,逻辑复杂,开发人员通用的方式是将表单所使用的资源文件进行压缩,这就使得实际运行的代码不同于开发的源代码,导致在运行环境出错后,根据压缩版代码,运维人员难以定位问题,难以为业务人员或代理商客户解决问题,不利于代码的修改和维护。
基于此,本公开提供一种错误代码定位方法,该方法可以根据压缩代码文件的错误消息,确定与错误代码对应的源代码文件中源代码的位置信息,从而定位问题。
图1为本公开一示例性实施例示出的错误代码定位方法的流程图。如图1所示,该方法可以包括以下步骤。
在S101中,若在压缩代码文件的运行过程中生成了错误消息,则根据错误消息,确定压缩代码文件中错误代码的位置信息。
在本公开中,压缩代码文件是由源代码文件经过压缩处理后得到的文件。源代码文件可以包括以下中的一者或多者:表单组件、表单引擎文件、第三方上传的文件。其中,表单组件具有多种类型,例如,下拉组件、地址组件、定位组件、联动组件等,这里不作具体的限定。在对表单组件进行压缩处理时,可以将所有表单组件统一压缩处理,生成一个与表单组件对应的压缩代码文件,也可以将每一个表单组件分别进行压缩处理,生成多个压缩代码文件,这里不作具体限定。表单引擎文件是用于表单渲染的引擎文件。第三方上传的文件可以为代理商客户对表单进一步扩展时上传的文件,例如,代理商客户新增加的表单组件。需要说明的是,对源代码文件的压缩处理可采用现有技术中代码压缩的方案,在这里不再赘述。由于表单在实际运行过程中调用的是压缩代码文件,这就使得表单在实际运行过程中产生的错误消息为压缩代码文件中的错误消息,因此可根据该错误消息,确定压缩代码文件中错误代码的位置信息。
在S102中,根据错误代码的位置信息,从与压缩代码文件对应的扩展文件中确定目标映射关系。
在本公开中,在对源代码文件进行压缩处理生成压缩代码文件的同时,生成与该压缩代码文件对应的扩展文件。其中,扩展文件中包括与错误代码的位置信息对应的目标映射关系,且目标映射关系记录有错误代码的位置信息、和源代码文件中与错误代码对应的源代码的位置信息之间的位置映射关系。
示例地,对所有表单组件统一压缩处理后,生成表单组件的压缩代码文件a和扩展文件a’。又例如,对表单引擎文件压缩处理后,生成表单引擎文件的压缩代码文件b和扩展文件b’。又例如,对第三方上传的文件压缩处理后,生成第三方上传的文件的压缩代码文件c和扩展文件c’。具体地,若错误消息指示表单组件的压缩代码文件a生成了错误消息,则根据该错误消息,确定错误代码在压缩代码文件a中的位置信息,并从扩展文件a’中确定与错误代码的位置信息对应的映射关系,即,目标映射关系。
在S103中,根据目标映射关系,确定源代码文件中与错误代码对应的源代码的位置信息。
在上述技术方案中,若在压缩代码文件的运行过程中生成了错误消息,则根据该错误消息确定压缩代码文件中错误代码的位置信息。之后,根据错误代码的位置信息,从与压缩代码文件对应的扩展文件中确定目标映射关系。由于该目标映射关系记录有错误代码的位置信息、和源代码文件中与该错误代码对应的源代码的位置信息之间的位置映射关系,因此,能够根据该目标映射关系,确定源代码文件中与该错误代码对应的源代码的位置信息。这样,可以准确定位产生错误的源代码,便于运维人员进一步定位故障原因,并对其进行修复。
在一种实施方式中,请参照图2,图2为本公开一示例性实施例示出的扩展文件生成方式的流程图。如图2所示,扩展文件生成方式可以包括以下步骤。
在S201中,遍历源代码文件的每一代码,并记录源代码文件的每一代码的位置信息。
在S202中,对源代码文件的每一代码进行压缩,以获得相对应的压缩代码,并记录该压缩代码在压缩代码文件中的位置信息。
在本公开中,源代码文件的每一代码的位置信息包括该每一代码对应的行标识和列标识。压缩代码在压缩代码文件中的位置信息包括该压缩代码对应的行标识和列标识,即,压缩代码文件中的每一代码具有对应的行标识和列标识。其中,列标识可以以代码的首字母所在的列为准,也可以以末字母所在的列为准,本公开对此不作具体限定。为了便于标记,优选地,以首字母所在的列为准。下面以列标识以代码的首字母所在的列为准进行详细描述。
示例地,源代码文件的每一代码可以为源代码文件中以分号(;)结尾的一个代码语句。作为示例,假设源代码文件中的源代码为“windows=green;apple=red;”,且假定该源代码位于源代码文件中的第一行,遍历源代码中的每一代码“windows=green;”及“apple=red;”,并以每一代码的首字母所在的列作为该代码的列标识,则可以确定源代码“windows=green;”对应的行标识为1,对应的列标识为1,因此,记录源代码“windows=green;”的位置信息为第一行第一列。源代码“apple=red;”对应的行标识为1,对应的列标识为15,因此,记录源代码“apple=red;”的位置信息为第一行第十五列。
对源代码文件的每一代码“windows=green;”及“apple=red;”进行压缩,得到与源代码“windows=green;”对应的压缩代码“a=b;”,以及,与源代码“apple=red;”对应的压缩代码“c=d;”,且假定该压缩代码位于压缩代码文件的第一行。因此,可以将压缩代码“a=b;”的位置信息可记录为第一行第一列,将压缩代码“c=d;”位置信息可记录为第一行第五列。
在S203中,将源代码文件的每一代码的位置信息和源代码文件的每一代码的压缩代码在压缩代码文件中的位置信息一一对应,以形成多个映射关系。
在本公开中,映射关系中储存着位置信息,用于表征压缩代码文件中的每一代码与源代码文件中的每一代码之间的位置关系。例如,映射关系M表征压缩代码文件第一行第一列的压缩代码“a=b;”对应于源代码文件第一行第一列的源代码“windows=green;”。又例如,映射关系N表征压缩代码文件第一行第五列的压缩代码“c=d;”对应于源代码文件第一行第十五列的源代码“apple=red;”。
此外,扩展文件包括多个映射关系,每个映射关系与压缩代码文件中的每一代码一一对应,对应于同一行代码的映射关系被分成一组,映射关系包括:源代码文件的标识信息,该映射关系对应的代码的列标识,源代码文件中与该映射关系对应的代码对应的源代码的行标识和列标识。示例地,映射关系M和N均对应于压缩代码文件的第一行,因此,映射关系M和N被分为一组。
在一种实施方式中,每一个映射关系可以由35位的二进制串编码后得到的字符串来表示,其中,该35位二进制串的前5位为源代码文件的标识信息,6~15位为源代码的行标识,16~25位为源代码的列标识,26~35位为该映射关系对应的压缩代码的列标识。其中,35位二进制串编码的过程为将该35位二进制串的每5位用1~9,A~W的字符串替换,其中1~9,A~W用于表示十进制的1~32。例如,A代表十进制的10,B代表十进制的11,以此类推,W代表十进制的32。其中,源代码文件的标识信息用于表征与该映射关系对应的源代码文件,例如,该扩展文件为所有表单组件统一压缩处理后得到的扩展文件a’,则可以用十进制的1代表下拉组件,用十进制的2代表地址组件,用十进制的3代表定位组件等等。又例如,该扩展文件为表单引擎文件压缩处理后得到的扩展文件b’,则可以用十进制的1代表表单引擎文件。需要说明的是,源代码文件的标识信息与源代码文件的对应关系并不限制于这一种方式,只要能够根据该标识信息确定出与之对应的源代码文件即可。
作为示例,35位的二进制串为00010011000100101100010100101101010,编码后的字符串为2C9CABA,即映射关系为2C9CABA。因此,可以将2(前5位)确定为源代码文件的标识信息,C9(6~15位)确定为源代码的行标识,CA(16~25位)确定为源代码的列标识,BA(26~35位)确定为该映射关系对应的压缩代码的列标识。
值得说明的是,本公开中仅示出了映射关系的一种表现形式,其中35位的二进制串支持扩展,例如,可将35位的二进制串扩展成50位,即,用前5位为源代码文件的标识信息,6~20位为源代码的行标识,21~35位为源代码的列标识,36~50位为该映射关系对应的压缩代码的列标识。此外,也可以采用其他的编码方式,例如,该35位二进制串的每5位用字符串1~6,A~Z替换。本公开中对映射关系的表现形式不作具体限定,只要能表征源代码文件的每一代码的位置信息与压缩代码文件中每一代码的位置信息之间的对应关系即可。
在S204中,基于多个映射关系,生成与压缩代码文件对应的扩展文件。
采用上述技术方案,通过将源代码文件的每一代码的位置信息和源代码文件的每一代码的压缩代码在压缩代码文件中的位置信息一一对应,以形成多个映射关系,从而生成与压缩代码文件对应的扩展文件。如此,在压缩代码文件运行的过程中,若生成错误消息,运维人员通过将代码的运行模式转换为调试模式,便可调用与压缩代码文件对应的扩展文件,从而确定与错误消息对应的源代码的位置信息,方便运维人员快速定位故障原因,并对其进行修复。
在本公开中,错误代码的位置信息包括错误代码对应的行标识和列标识。这样,在S102中,根据错误代码的位置信息,从与压缩代码文件对应的扩展文件中确定目标映射关系可以进一步包括:
根据错误代码的行标识,从扩展文件中确定出与该行标识对应的那一组映射关系。根据错误代码的列标识,从确定出的那一组映射关系中,进一步确定出包含错误代码的列标识的映射关系,该映射关系作为上述的目标映射关系。
沿用上述示例,假设错误信息指示表单组件在运行的过程中产生错误,且错误代码的位置信息表征压缩代码文件的第一行第五列出错,即错误代码的行标识为1,列标识为5,则根据错误代码的行标识1,从表单组件的扩展文件a’中确定出与第一行对应的那一组映射关系,即包括映射关系M和N的那一组映射关系,然后根据错误代码的列标识5,从确定出的那一组映射关系中,进一步确定包含错误代码的列标识的映射关系,即映射关系N,并将映射关系N作为目标映射关系,即目标映射关系为2010F05。这样,在确定出目标映射关系后,对该目标映射关系进行解析,以确定与该错误代码对应的源代码的位置信息。具体地,截取该目标映射关系的第一位并转换成十进制数得到十进制数2,则与该映射关系对应的源代码文件的标识信息为2,即确定出该映射关系对应的源代码文件为地址组件。之后,截取该目标映射关系的第2位和第3位,即01,转换成十进制数为1,则该目标映射关系对应于源代码文件的第一行,接着,截取该目标映射关系的第4位和第5位,即0F,转换成十进制数为15,则该目标映射关系对应于源代码文件的第十五列,因此,根据该目标映射关系可以确定出源代码文件(地址组件)的第一行第十五列出错。
又示例地,假设错误信息指示表单组件在运行的过程中产生错误,且确定出的目标映射关系为2C9WDAE,则首先截取该目标映射关系的第一位并转换成十进制数得到十进制数2,则确定出该映射关系对应的源代码文件为地址组件。之后,截取该目标映射关系的第2位和第3位,即C9,转换成十进制数为393,则该目标映射关系对应于源代码文件的第393行,接着,截取该目标映射关系的第4位和第5位,即WD,转换成十进制数为1004,则该目标映射关系对应于源代码文件的第1004列,因此,根据该目标映射关系可以确定出源代码文件(地址组件)的第393行第1004列出错。
图3为本公开另一示例性实施例示出的错误代码定位方法的流程图。如图3所示,该方法除了包括上述的S101-S103之外,还可以包括S301。
在S301中,展示源代码文件的标识、以及与错误代码对应的源代码的位置信息。
在本公开中,可以通过控制台或者输出日志的方式展示源代码文件的标识、以及与错误代码对应的源代码的位置信息。其中,源代码文件的标识可以为源代码文件的名称,与错误代码对应的源代码的位置信息可以为源代码的行标识,也可以为源代码行标识和列标识,这里不作具体的限定。例如,地址组件的名称为address.js,则可以通过控制台或者输出日志的方式展示address.js、第4行第5列。这样,运维人员可以根据该展示信息确定出地址组件的第4行第5列出错,然后在地址组件的源代码文件中找到第4行第5列对应的源代码,进而确定故障原因,并对故障进行修复。
可选地,扩展文件还包括与源代码文件对应的产品类型和产品版本号。
示例地,扩展文件中还包括product和version两个字段,其中product用于表示产品的类型,version用于表示产品的版本号,例如,{product:sacaforms,version:5.2},则表示产品类型为sacaforms,产品版本号为5.2。
如此,该方法还包括如下步骤:
若在压缩代码文件的运行过程中生成了错误消息,则根据产品类型和产品版本号,确定源代码文件的存储地址。通过源代码文件的存储地址查找源代码文件。
在一种实施方式中,若压缩代码文件在运行的过程中生成了错误消息,则将代码的运行模式转换为调试模式,以调用与该压缩代码文件对应的扩展文件,并从该扩展文件中确定产品的类型和版本号,进而确定源代码文件的地址,通过访问该地址便可以查找源代码文件。
在另一种实施方式中,为了代码的安全性,源代码文件被存储在服务器上,可以对访问服务器的用户进行验证,例如可将用户输入的用户名和密码与预先存储的用户名和密码进行匹配,若匹配成功,则表明该用户为合法用户,该用户便可以查找该服务器上存储的源代码文件。
这样,若压缩代码文件在运行的过程中生成了错误消息,则通过调用扩展文件确定与错误消息对应的源代码在源代码文件中的位置信息,以及源代码文件的地址,通过访问源代码文件的地址,便可以查找到与该压缩代码对应的源代码文件,进而使运维人员可以准确定位产生错误的源代码,并对其进行修复。另外,通过将源代码文件存储在服务器上,用户需要通过认证才能访问该服务器,进一步提高了代码的安全性。
图4为本公开一示例性实施例示出的错误代码定位装置的框图。如图4所示,该装置400可以包括:
第一确定模块401,用于若在压缩代码文件的运行过程中生成了错误消息,则根据所述错误消息,确定所述压缩代码文件中错误代码的位置信息;
第二确定模块402,用于根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,其中,所述目标映射关系记录有所述错误代码的位置信息、和源代码文件中与所述错误代码对应的源代码的位置信息之间的位置映射关系;
第三确定模块403,用于根据所述目标映射关系,确定所述源代码文件中与所述错误代码对应的所述源代码的位置信息。
本公开中的方案,若在压缩代码文件的运行过程中生成了错误消息,则根据该错误消息确定压缩代码文件中错误代码的位置信息。之后,根据错误代码的位置信息,从与压缩代码文件对应的扩展文件中确定目标映射关系,由于该目标映射关系记录有错误代码的位置信息、和源代码文件中与该错误代码对应的源代码的位置信息之间的位置映射关系,因此,能够根据该目标映射关系,确定源代码文件中与该错误代码对应的源代码的位置信息。这样,可以准确定位产生错误的源代码,便于运维人员进一步定位故障原因,并对其进行修复。
可选地,所述压缩代码文件中的每一代码具有对应的行标识和列标识;所述错误代码的位置信息包括所述错误代码对应的行标识和列标识;
所述扩展文件包括多个映射关系,每个所述映射关系与所述压缩代码文件中的每一代码一一对应,对应于同一行代码的映射关系被分成一组,所述映射关系包括:所述源代码文件的标识信息,该映射关系对应的代码的列标识,所述源代码文件中与该映射关系对应的代码对应的源代码的行标识和列标识;
所述第二确定模块402包括:
第一确定子模块,用于根据所述错误代码的行标识,从所述扩展文件中确定出与该行标识对应的那一组映射关系;
第二确定子模块,用于根据所述错误代码的列标识,从确定出的那一组映射关系中,进一步确定出包含所述错误代码的列标识的映射关系,该映射关系作为所述目标映射关系。
可选地,所述装置还包括:
展示模块,用于在确定出所述源代码文件中与所述错误代码对应的所述源代码的位置信息之后,展示所述源代码文件的标识、以及与所述错误代码对应的所述源代码的位置信息。
可选地,所述扩展文件通过如下方式生成:
遍历所述源代码文件的每一代码,并记录所述源代码文件的每一代码的位置信息;
对所述源代码文件的每一代码进行压缩,以获得相对应的压缩代码,并记录该压缩代码在压缩代码文件中的位置信息;
将所述源代码文件的每一代码的位置信息和所述源代码文件的每一代码的压缩代码在所述压缩代码文件中的位置信息一一对应,以形成多个映射关系;
基于所述多个映射关系,生成与所述压缩代码文件对应的扩展文件。
可选地,所述扩展文件还包括与所述源代码文件对应的产品类型和产品版本号;
所述装置还包括:
第四确定模块,用于若在所述压缩代码文件的运行过程中生成了错误消息,则根据所述产品类型和产品版本号,确定所述源代码文件的存储地址;查找模块,用于通过所述源代码文件的存储地址查找所述源代码文件。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一构思,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开提供的错误代码定位方法的步骤。
图5是根据一示例性实施例示出的一种电子设备500的框图。如图5所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(I/O)接口504,以及通信组件505中的一者或多者。
其中,处理器501用于控制该电子设备500的整体操作,以完成上述的错误代码定位方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该电子设备500与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件505可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的错误代码定位方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的错误代码定位方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的错误代码定位方法。
图6是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以被提供为一服务器。参照图6,电子设备600包括处理器622,其数量可以为一个或多个,以及存储器632,用于存储可由处理器622执行的计算机程序。存储器632中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器622可以被配置为执行该计算机程序,以执行上述的错误代码定位方法。
另外,电子设备600还可以包括电源组件626和通信组件650,该电源组件626可以被配置为执行电子设备600的电源管理,该通信组件650可以被配置为实现电子设备600的通信,例如,有线或无线通信。此外,该电子设备600还可以包括输入/输出(I/O)接口658。电子设备600可以操作基于存储在存储器632的操作***,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的错误代码定位方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器632,上述程序指令可由电子设备600的处理器622执行以完成上述的错误代码定位方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的错误代码定位方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种错误代码定位方法,其特征在于,所述方法包括:
若在压缩代码文件的运行过程中生成了错误消息,则根据所述错误消息,确定所述压缩代码文件中错误代码的位置信息;
根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,其中,所述目标映射关系记录有所述错误代码的位置信息、和源代码文件中与所述错误代码对应的源代码的位置信息之间的位置映射关系;
根据所述目标映射关系,确定所述源代码文件中与所述错误代码对应的所述源代码的位置信息。
2.根据权利要求1所述的方法,其特征在于,所述压缩代码文件中的每一代码具有对应的行标识和列标识;所述错误代码的位置信息包括所述错误代码对应的行标识和列标识;
所述扩展文件包括多个映射关系,每个所述映射关系与所述压缩代码文件中的每一代码一一对应,对应于同一行代码的映射关系被分成一组,所述映射关系包括:所述源代码文件的标识信息,该映射关系对应的代码的列标识,所述源代码文件中与该映射关系对应的代码对应的源代码的行标识和列标识;
所述根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,包括:
根据所述错误代码的行标识,从所述扩展文件中确定出与该行标识对应的那一组映射关系;
根据所述错误代码的列标识,从确定出的那一组映射关系中,进一步确定出包含所述错误代码的列标识的映射关系,该映射关系作为所述目标映射关系。
3.根据权利要求1所述的方法,其特征在于,在确定出所述源代码文件中与所述错误代码对应的所述源代码的位置信息之后,所述方法还包括:
展示所述源代码文件的标识、以及与所述错误代码对应的所述源代码的位置信息。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述扩展文件通过如下方式生成:
遍历所述源代码文件的每一代码,并记录所述源代码文件的每一代码的位置信息;
对所述源代码文件的每一代码进行压缩,以获得相对应的压缩代码,并记录该压缩代码在压缩代码文件中的位置信息;
将所述源代码文件的每一代码的位置信息和所述源代码文件的每一代码的压缩代码在所述压缩代码文件中的位置信息一一对应,以形成多个映射关系;
基于所述多个映射关系,生成与所述压缩代码文件对应的扩展文件。
5.根据权利要求4所述的方法,其特征在于,所述源代码文件包括以下中的一者或多者:表单组件、表单引擎文件、第三方上传的文件。
6.根据权利要求1所述的方法,其特征在于,所述扩展文件还包括与所述源代码文件对应的产品类型和产品版本号;
所述方法还包括:
若在所述压缩代码文件的运行过程中生成了错误消息,则根据所述产品类型和产品版本号,确定所述源代码文件的存储地址;
通过所述源代码文件的存储地址查找所述源代码文件。
7.一种错误代码定位装置,其特征在于,所述装置包括:
第一确定模块,用于若在压缩代码文件的运行过程中生成了错误消息,则根据所述错误消息,确定所述压缩代码文件中错误代码的位置信息;
第二确定模块,用于根据所述错误代码的位置信息,从与所述压缩代码文件对应的扩展文件中确定目标映射关系,其中,所述目标映射关系记录有所述错误代码的位置信息、和源代码文件中与所述错误代码对应的源代码的位置信息之间的位置映射关系;
第三确定模块,用于根据所述目标映射关系,确定所述源代码文件中与所述错误代码对应的所述源代码的位置信息。
8.根据权利要求7所述的装置,其特征在于,所述压缩代码文件中的每一代码具有对应的行标识和列标识;所述错误代码的位置信息包括所述错误代码对应的行标识和列标识;
所述扩展文件包括多个映射关系,每个所述映射关系与所述压缩代码文件中的每一代码一一对应,对应于同一行代码的映射关系被分成一组,所述映射关系包括:所述源代码文件的标识信息,该映射关系对应的代码的列标识,所述源代码文件中与该映射关系对应的代码对应的源代码的行标识和列标识;
所述第二确定模块包括:
第一确定子模块,用于根据所述错误代码的行标识,从所述扩展文件中确定出与该行标识对应的那一组映射关系;
第二确定子模块,用于根据所述错误代码的列标识,从确定出的那一组映射关系中,进一步确定出包含所述错误代码的列标识的映射关系,该映射关系作为所述目标映射关系。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158130.7A CN111090582A (zh) | 2019-11-22 | 2019-11-22 | 错误代码定位方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158130.7A CN111090582A (zh) | 2019-11-22 | 2019-11-22 | 错误代码定位方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111090582A true CN111090582A (zh) | 2020-05-01 |
Family
ID=70393160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911158130.7A Pending CN111090582A (zh) | 2019-11-22 | 2019-11-22 | 错误代码定位方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090582A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708680A (zh) * | 2020-06-12 | 2020-09-25 | 北京字节跳动网络技术有限公司 | 报错信息解析方法、装置、电子设备及存储介质 |
CN111966576A (zh) * | 2020-06-29 | 2020-11-20 | 北京百度网讯科技有限公司 | 异常代码的定位方法、装置、电子设备及存储介质 |
CN112162917A (zh) * | 2020-09-03 | 2021-01-01 | 华为技术有限公司 | 一种软件***的缺陷定位方法及装置 |
CN112486823A (zh) * | 2020-11-30 | 2021-03-12 | 建信金融科技有限责任公司 | 错误码的校验方法、装置、电子设备及可读存储介质 |
CN113760617A (zh) * | 2021-08-17 | 2021-12-07 | 联想(北京)有限公司 | 故障处理方法及装置、设备、存储介质 |
CN114416414A (zh) * | 2022-01-17 | 2022-04-29 | 北京百度网讯科技有限公司 | 一种故障信息定位方法、装置、设备及存储介质 |
CN115510782A (zh) * | 2022-08-31 | 2022-12-23 | 芯华章科技股份有限公司 | 定位验证错误的方法、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897211A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 针对混淆脚本语言的定位方法和*** |
CN109254954A (zh) * | 2018-09-13 | 2019-01-22 | 政采云有限公司 | 文件处理方法和装置、计算设备及存储介质 |
CN110069388A (zh) * | 2019-05-22 | 2019-07-30 | 深圳前海微众银行股份有限公司 | 告警信息处理方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-11-22 CN CN201911158130.7A patent/CN111090582A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897211A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 针对混淆脚本语言的定位方法和*** |
CN109254954A (zh) * | 2018-09-13 | 2019-01-22 | 政采云有限公司 | 文件处理方法和装置、计算设备及存储介质 |
CN110069388A (zh) * | 2019-05-22 | 2019-07-30 | 深圳前海微众银行股份有限公司 | 告警信息处理方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
阮一锋: "JavaScript Source Map详解", 《HTTPS://WWW.RUANYIFENG.COM/BLOG/2013/01/JAVASCRIPT_SOURCE_MAP.HTML》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708680A (zh) * | 2020-06-12 | 2020-09-25 | 北京字节跳动网络技术有限公司 | 报错信息解析方法、装置、电子设备及存储介质 |
CN111966576A (zh) * | 2020-06-29 | 2020-11-20 | 北京百度网讯科技有限公司 | 异常代码的定位方法、装置、电子设备及存储介质 |
CN112162917A (zh) * | 2020-09-03 | 2021-01-01 | 华为技术有限公司 | 一种软件***的缺陷定位方法及装置 |
CN112486823A (zh) * | 2020-11-30 | 2021-03-12 | 建信金融科技有限责任公司 | 错误码的校验方法、装置、电子设备及可读存储介质 |
CN112486823B (zh) * | 2020-11-30 | 2023-06-09 | 建信金融科技有限责任公司 | 错误码的校验方法、装置、电子设备及可读存储介质 |
CN113760617A (zh) * | 2021-08-17 | 2021-12-07 | 联想(北京)有限公司 | 故障处理方法及装置、设备、存储介质 |
CN114416414A (zh) * | 2022-01-17 | 2022-04-29 | 北京百度网讯科技有限公司 | 一种故障信息定位方法、装置、设备及存储介质 |
CN114416414B (zh) * | 2022-01-17 | 2024-05-14 | 北京百度网讯科技有限公司 | 一种故障信息定位方法、装置、设备及存储介质 |
CN115510782A (zh) * | 2022-08-31 | 2022-12-23 | 芯华章科技股份有限公司 | 定位验证错误的方法、电子设备和存储介质 |
CN115510782B (zh) * | 2022-08-31 | 2024-04-26 | 芯华章科技股份有限公司 | 定位验证错误的方法、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090582A (zh) | 错误代码定位方法、装置、存储介质及电子设备 | |
CN110659206B (zh) | 基于微服务的模拟架构建立方法、装置、介质及电子设备 | |
CN112667240A (zh) | 程序代码转换方法及相关设备 | |
CN110719590B (zh) | 基于手机号码的一键登录方法、装置、设备及存储介质 | |
CN110928770B (zh) | 软件测试的方法、装置、***、存储介质和电子设备 | |
CN110704833A (zh) | 数据权限配置方法、设备、电子设备及存储介质 | |
CN111400170B (zh) | 一种数据权限测试方法及装置 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN112632009A (zh) | 电子档案的处理方法、装置、存储介质及电子设备 | |
CN115658367A (zh) | 一种基于程序错误码的异常提示方法和装置 | |
CN111046393B (zh) | 漏洞信息上传方法、装置、终端设备及存储介质 | |
CN109766526B (zh) | 表单保存方法、装置、存储介质及电子设备 | |
CN111199390A (zh) | ***报销方法及装置,存储介质,电子设备 | |
CN113886221B (zh) | 测试脚本生成方法、装置、存储介质及电子设备 | |
CN114296793A (zh) | 混淆代码的反混淆方法、装置、可读介质及电子设备 | |
US8615744B2 (en) | Methods and system for managing assets in programming code translation | |
CN110865818A (zh) | 应用关联域名的检测方法、装置及电子设备 | |
CN112507014B (zh) | 一种基于可信账本数据库的数据存储方法、装置及*** | |
CN112487032A (zh) | 数据查询的方法、装置、存储介质及电子设备 | |
CN112039971A (zh) | 数据记录方法及装置、数据存储方法及装置 | |
CN112445790B (zh) | 一种报表数据存储方法、装置、设备及介质 | |
CN111782678A (zh) | 数据存储方法和装置 | |
CN111538651A (zh) | 接口测试方法、装置、服务器及存储介质 | |
CN115757191B (zh) | 一种数据处理方法和装置 | |
CN116483735B (zh) | 一种代码变更的影响分析方法、装置、存储介质及设备 |
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 |