CN116204429B - 一种代码组织及其调试方法、系统及存储介质 - Google Patents
一种代码组织及其调试方法、系统及存储介质 Download PDFInfo
- Publication number
- CN116204429B CN116204429B CN202310171941.0A CN202310171941A CN116204429B CN 116204429 B CN116204429 B CN 116204429B CN 202310171941 A CN202310171941 A CN 202310171941A CN 116204429 B CN116204429 B CN 116204429B
- Authority
- CN
- China
- Prior art keywords
- debugged
- dynamic link
- link library
- code
- debugging
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000008520 organization Effects 0.000 title claims abstract description 20
- 230000006870 function Effects 0.000 claims abstract description 42
- 238000011161 development Methods 0.000 claims abstract description 34
- 239000000243 solution Substances 0.000 claims description 55
- 239000012490 blank solution Substances 0.000 claims description 16
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 19
- 230000007547 defect Effects 0.000 abstract description 8
- 238000004080 punching Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种代码组织及其调试方法、系统及存储介质,方法包括:利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;不同的动态链接库文件之间以包的形式进行引用;新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试。仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
Description
【技术领域】
本发明涉及计算机技术技术领域,尤其涉及一种代码组织及其调试方法、系统及存储介质。
【背景技术】
在日常开发中,新建解决方案时通常需要引用很多共用项目,这些共用项目以代码的形式被引用。随着业务的发展,这些常用的项目代码量篇幅会越来越大,集成开发环境加载共用项目进行调试时,需要将所有的共用项目的代码进行加载,因此这些共用项目的代码以及集成开发环境对他们的解析和智能支持会占用非常大的内存,造成集成开发环境卡顿。甚至当代码规模到一定程度时,集成开发环境将不堪重负发生崩溃。
【发明内容】
有鉴于此,本发明提供了一种代码组织及其调试方法、系统及存储介质,以解决由于加载代码量过大造成集成开发环境卡顿,甚至崩溃的问题。
本发明第一实施例的具体技术方案为:一种代码组织及其调试方法,其特征在于,方法包括:利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;不同的动态链接库文件之间以包的形式进行引用;新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试。
优选的,利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库,不同的动态链接库文件之间以包的形式进行引用,包括:根据新建解决方案确定所需引用的目标共用项目;对目标共用项目中每个项目对应的代码进行编译形成对应的动态链接库文件单元,并将动态链接库文件单元单独打包形成单独的代码包;所有的目标共用项目的代码进行编译形成的动态链接库文件单元构成动态链接库文件,所有单独的代码包构成包;不同的动态链接库文件之间以包的形式进行引用。
优选的,所述调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试,包括:调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目;修改待调试项目的配置,获得待调试共用项目的待调试代码;调试待调试代码完成调试。
优选的,所述新建解决方案引用所述动态链接库文件实现目标共用项目的功能调用,包括:新建解决方案时根据目标功能对新建解决方案构建目标共用项目的引用链接;新建解决方案根据引用链接引用目标共用项目的功能,实现目标共用项目的功能调用。
优选的,所述将动态链接库文件单元单独打包形成单独的代码包,包括:将动态链接库文件单元中的元数据文件放在文件夹结构中生成压缩包,即单独的代码包。
优选的,所述修改待调试项目的配置,获得待调试共用项目的待调试代码,包括:修改所述待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码。
优选的,所述修改所述待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码,包括:将packages.config文件中的package引用的条目删除,将报错的动态链接库文件中的.csproj文件中的Reference引用条目替换为待调试共用项目的ProjectReference条目。
优选的,所述调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目后,还包括:新建空白解决方案,将所述报错的动态链接库文件加载至所述空白解决方案中;遍历所述空白解决方案中的报错的动态链接库文件,获得修改待调试项目;所述修改待调试项目的配置,获得待调试共用项目的待调试代码,包括:在空白解决方案中修改所述待调试项目的配置,获得待调试共用项目的待调试代码。
本发明第二实施例的具体技术方案为:一种代码组织及其调试系统,其特征在于,所述系统包括:动态链接库新建模块,功能调用模块和代码调试模块;所述动态链接库模块目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;不同的动态链接库文件之间以包的形式进行引用;所述功能调用模块用于当新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;所述代码调试模块用于调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试。
本发明第三实施例的具体技术方案为:一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如第一实施例中任一项所述方法的步骤。
实施本发明实施例,将具有如下有益效果:
本方法利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;不同的动态链接库文件之间以包的形式进行引用;新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试。通过将目标共用项目建立动态链接库文件的形式,在新建解决方案时直接引用动态链接库文件即可完成调用其功能的实现,无需加载动态链接库对应的源文件的代码,使得在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低了调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
【附图说明】
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为代码组织及其调试方法的流程图;
图2为动态链接库以包的形式进行引用流程图;
图3为溯源待调试代码流程图;
图4为修改待调试项目的配置流程图;
图5为实现目标共用项目的功能调用流程图;
图6为代码组织及其调试系统结构图;
图7为计算机可读存储介质结构图;
其中,601、动态链接库新建模块;602、功能调用模块;603、代码调试模块。
【具体实施方式】
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在开发过程中,一些被设计好的常用的功能模块可以被多个项目引用,这些常用的功能模块被称为共用项目,如登录模块、邮箱模块、打卡模块等。在新建解决方案时,会调用这些共用项目中的一个或多个,实现共用项目中的具体功能。被调用的共用项目被成为目标共用项目。
在具体实施例中,请参阅图1,为本申请第一方面提供一种代码组织及其调试方法的流程图,通过使用本方法使得在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试。方法包括:步骤101、利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;不同的动态链接库文件之间以包的形式进行引用;步骤102、新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;步骤103、调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试。
具体的,当目标共用项目为登录模块和打卡模块时,利用登录模块的代码构建第一动态链接库文件单元,利用打卡模块的代码构建第二动态链接库文件单元,第一动态链接库文件单元和第二动态链接库文件单元构成动态链接库文件。新建解决项目时,会有多个动态链接库文件,不同的动态链接库文件之间以包的形式进行引用。在新建解决方案时,通过引用包中的动态链接库文件实现引用登录模块和打卡模块的功能调用。在调试新建解决方案时,根据集成开发环境报错的动态链接库确定待调试共用项目,如报错的动态链接库中包含登录模块和打卡模块时,可以确定待调试共用项目为登录模块的打卡模块,溯源这两个模块的代码,即可完成调试,无需加载新建解决项目中全部的代码,减少代码量的加载。
通过将目标共用项目建立动态链接库文件的形式,在新建解决方案时直接引用动态链接库文件即可完成调用其功能的实现,无需加载动态链接库对应的源文件的代码,使得在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低了调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
在具体实施例中,请参阅图2,步骤101中利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库,不同的动态链接库文件之间以包的形式进行引用,包括:步骤201、根据新建解决方案确定所需引用的目标共用项目;步骤202、对目标共用项目中每个项目对应的代码进行编译形成对应的动态链接库文件单元,并将动态链接库文件单元单独打包形成单独的代码包;步骤203、所有的目标共用项目的代码进行编译形成的动态链接库文件单元构成动态链接库文件,所有单独的代码包构成包;步骤204、不同的动态链接库文件之间以包的形式进行引用。具体的,将动态链接库文件单元中的元数据文件放在文件夹结构中生成压缩包,即单独的代码包。在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低了调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
具体的,对登录模块的代码进行编译构建第一动态链接库文件单元,对打卡模块的代码进行编译构建第二动态链接库文件单元,将第一动态链接库文件单元打包形成第一代码包,将第二动态链接库文件单元打包形成第二代码包,第一代码包和第二代码包构成包。通过将目标共用项目的代码编译成动态链接库文件,并打包成包,新建解决方案时只需要引用包,即可实现目标共用项目功能的调用,无需支撑代码级别的解析。
在具体实施例中,请参阅图3,步骤103、调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试,包括:步骤301、调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目;步骤302、修改待调试项目的配置,获得待调试共用项目的待调试代码;步骤303、调试待调试代码完成调试。
伪代码是由算法描述语言描述的,其具有结构清晰、代码简单以及可读性好等优点。为了提高程序的可读性,通常会使用伪代码来配置或组织程序运行逻辑,而伪代码并不像源代码(由程序语言(如,Pascal,C,Java,etc等)描述)那样,可以直接在提供程序开发环境的应用程序(如,集成开发环境)中进行编译、执行及调试。因此,如果在伪代码已经具备的优点的基础上,再增加可调试的特性,将使得伪代码的应用场景更加广泛。此外,调试伪代码比调试源代码更直观、更简单
具体的,请参阅图4,步骤302中修改待调试项目的配置,获得待调试共用项目的待调试代码,包括:利用伪代码进行配置的修改,具体的包括:修改所述待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码。其中,修改待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码,包括:步骤401、将packages.config文件中的package引用的条目删除;步骤402、将报错的动态链接库文件中的.csproj文件中的Reference引用条目替换为待调试共用项目的ProjectReference条目。通过伪代码修改上述文件,实现包与代码的切换。
在具体实施例中,请参阅图5,步骤102中所述新建解决方案引用所述动态链接库文件实现目标共用项目的功能调用,包括:步骤501、新建解决方案时根据目标功能对新建解决方案构建目标共用项目的引用链接;步骤502、新建解决方案根据引用链接引用目标共用项目的功能,实现目标共用项目的功能调用。
具体的,新建解决方案中每个项目会明确指出它需要引用的共用项目,引用链接由具体的代码决定,编写对应代码的程序员添加这些引用链接在项目中。使用引用链接调取共用项目的功能,能够减少涉及的项目的数量,且通过引用链接的方式使不同项目之间的引用是多对多,不同项目之间形成一个有向无环图。
在具体实施例中,调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目后,还包括:新建空白解决方案,将所述报错的动态链接库文件加载至所述空白解决方案中;遍历所述空白解决方案中的报错的动态链接库文件,获得修改待调试项目;在空白解决方案中修改所述待调试项目的配置,获得待调试共用项目的待调试代码。通过新建空白解决方案进行调试报错的动态链接库文件,能够有效的定位报错的问题点,可针对问题点进行进一步的调试,缩短报错问题点查找时间。在空白解决方案中直接引用动态链接库文件即可完成调用其功能的实现,无需加载动态链接库对应的源文件的代码,使得在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低了调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
在具体实施例中,定位报错的方法为:接收用户的程序调试指令,确定需要调试的程序;确定需要调试的代码;将调试的代码命名为测试文件并保存进临时目录;调用执行指令运行测试文件,将测试文件的运行结果与程序运行结果进行匹配;若完全匹配,则修改测试文件,调用执行指令运行修改后的测试文件,将修改后的测试文件的运行结果与期望结果进行匹配;若完全匹配,则完成报错的定位,输出定位报错的结果。
在具体实施例中,请参阅图6,为本申请第二方面提供一种代码组织及其调试系统,所述系统包括:动态链接库新建模块601,功能调用模块602和代码调试模块601;动态链接库模块601根据目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;不同的动态链接库文件之间以包的形式进行引用;功能调用模块602用于当新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;代码调试模块603用于调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试。
本系统通过将目标共用项目建立动态链接库文件的形式,在新建解决方案时直接引用动态链接库文件即可完成调用其功能的实现,无需加载动态链接库对应的源文件的代码,使得在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低了调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
具体的,动态链接库模块601利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库为:动态链接库模块601根据新建解决方案确定所需引用的目标共用项目;对目标共用项目中每个项目对应的代码进行编译形成对应的动态链接库文件单元,并将动态链接库文件单元单独打包形成单独的代码包;所有的目标共用项目的代码进行编译形成的动态链接库文件单元构成动态链接库文件,所有单独的代码包构成包;不同的动态链接库文件之间以包的形式进行引用。
具体的,功能调用模块602根据新建解决方案时的目标功能对新建解决方案构建目标共用项目的引用链接;新建解决方案根据引用链接引用目标共用项目的功能,实现目标共用项目的功能调用。
具体的,代码调试模块603利用伪代码调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目;修改待调试项目的配置,获得待调试共用项目的待调试代码调试待调试代码完成调试。其中,修改待调试项目的配置包括:修改待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码。其中,修改待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码,包括:将packages.config文件中的package引用的条目删除,将报错的动态链接库文件中的.csproj文件中的Reference引用条目替换为待调试共用项目的ProjectReference条目。通过修改上述文件,实现包与代码的切换。
在具体实施例中,代码组织及其调试系统还包括空白解决方案模块,空白解决方案模块能够加载报错的动态链接库文件,并且遍历报错的动态链接库文件,获得修改待调试项目,修改待调试项目的配置,获得待调试共用项目的待调试代码。
在具体实施例中,请参阅图7,为本申请第三方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得处理器执行如本申请第一方面中任一项所述方法的步骤。通过使用本存储介质,能够将目标共用项目建立动态链接库文件的形式,在新建解决方案时直接引用动态链接库文件即可完成调用其功能的实现,无需加载动态链接库对应的源文件的代码,使得在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低了调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
在具体实施例中,本申请第四方面提供一种调试系统,调试系统包括调试机、烧录机。调试机中有待调试共用项目的源代码。烧录机包括获取单元和下载单元,获取单元获取待调试共用项目的可执行文件,下载单元将待调试共用项目的可执行文件下载到被调测设备上。调试机为调试单元和安全管控单元,调试单元进行调试时,执行如本申请第一方面中任一项所述方法的步骤。通过使用本调试系统,能够将目标共用项目建立动态链接库文件的形式,在新建解决方案时直接引用动态链接库文件即可完成调用其功能的实现,无需加载动态链接库对应的源文件的代码,使得在调试过程中,仅需要调试发生错误的共用项目代码即可完成报错调试,无需加载所有的共用项目的代码,降低了调试报错所占内存量,解决了调试过程中集成开发环境卡顿、崩溃的现象,在成功进行调试、修复缺陷的同时,极大的提高了效率。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种代码组织及其调试方法,其特征在于,所述方法包括:
利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;
不同的动态链接库文件之间以包的形式进行引用;
新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;
调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目;修改待调试项目的配置,获得待调试共用项目的待调试代码;调试待调试代码完成调试。
2.如权利要求1所述的代码组织及其调试方法,其特征在于,所述利用目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库,不同的动态链接库文件之间以包的形式进行引用,包括:
根据新建解决方案确定所需引用的目标共用项目;
对目标共用项目中每个项目对应的代码进行编译形成对应的动态链接库文件单元,并将动态链接库文件单元单独打包形成单独的代码包;
所有的目标共用项目的代码进行编译形成的动态链接库文件单元构成动态链接库文件,所有单独的代码包构成包;
不同的动态链接库文件之间以包的形式进行引用。
3.如权利要求1所述的代码组织及其调试方法,其特征在于,所述新建解决方案引用所述动态链接库文件实现目标共用项目的功能调用,包括:
新建解决方案时根据目标功能对新建解决方案构建目标共用项目的引用链接;
新建解决方案根据引用链接引用目标共用项目的功能,实现目标共用项目的功能调用。
4.如权利要求2所述的代码组织及其调试方法,其特征在于,所述将动态链接库文件单元单独打包形成单独的代码包,包括:将动态链接库文件单元中的元数据文件放在文件夹结构中生成压缩包,即单独的代码包。
5.如权利要求1所述的代码组织及其调试方法,其特征在于,所述修改待调试项目的配置,获得待调试共用项目的待调试代码,包括:
修改所述待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码。
6.如权利要求5所述的代码组织及其调试方法,其特征在于,所述修改所述待调试项目的.csproj文件和packages.config文件,获得待调试共用项目的待调试代码,包括:
将packages.config文件中的package引用的条目删除,将报错的动态链接库文件中的.csproj文件中的Reference引用条目替换为待调试共用项目的ProjectReference条目。
7.如权利要求1所述的代码组织及其调试方法,其特征在于,所述调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目后,还包括:
新建空白解决方案,将所述报错的动态链接库文件加载至所述空白解决方案中;
遍历所述空白解决方案中的报错的动态链接库文件,获得修改待调试项目;
所述修改待调试项目的配置,获得待调试共用项目的待调试代码,包括:
在空白解决方案中修改所述待调试项目的配置,获得待调试共用项目的待调试代码。
8.一种代码组织及其调试系统,其特征在于,所述系统包括:动态链接库新建模块,功能调用模块和代码调试模块;
所述动态链接库新建模块目标共用项目构建不同的动态链接库文件单元,不同的动态链接库文件单元构成动态链接库;不同的动态链接库文件之间以包的形式进行引用;
所述功能调用模块用于当新建解决方案引用所述包中的动态链接库文件实现目标共用项目的功能调用;
所述代码调试模块用于调试新建解决方案时根据集成开发环境报错的动态链接库文件确定待调试共用项目,溯源待调试共用项目的待调试代码,调试待调试代码完成调试。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310171941.0A CN116204429B (zh) | 2023-02-21 | 2023-02-21 | 一种代码组织及其调试方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310171941.0A CN116204429B (zh) | 2023-02-21 | 2023-02-21 | 一种代码组织及其调试方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116204429A CN116204429A (zh) | 2023-06-02 |
CN116204429B true CN116204429B (zh) | 2023-12-08 |
Family
ID=86514403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310171941.0A Active CN116204429B (zh) | 2023-02-21 | 2023-02-21 | 一种代码组织及其调试方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116204429B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946486A (en) * | 1996-12-10 | 1999-08-31 | International Business Machines Corporation | Apparatus and method for tracing entries to or exits from a dynamic link library |
WO2013121951A1 (ja) * | 2012-02-13 | 2013-08-22 | 三菱電機株式会社 | プログラム管理システム |
CN103955371A (zh) * | 2014-04-29 | 2014-07-30 | 浙江银江研究院有限公司 | 对串口仪表进行数据采集的通用软件模块的设计开发方法 |
JP2018156294A (ja) * | 2017-03-16 | 2018-10-04 | 三菱電機株式会社 | ソフトウェア検証装置およびソフトウェア検証プログラム |
CN109388576A (zh) * | 2018-10-29 | 2019-02-26 | 无锡中微爱芯电子有限公司 | 一种基于agdi接口的仿真调试工具 |
US10572245B1 (en) * | 2016-08-30 | 2020-02-25 | Amazon Technologies, Inc. | Identifying versions of running programs using signatures derived from object files |
CN112579470A (zh) * | 2020-12-29 | 2021-03-30 | 中国科学院计算机网络信息中心 | 一种软件动态库调试的编译链接方法及系统 |
CN112631851A (zh) * | 2021-01-08 | 2021-04-09 | 北京集睿致远科技有限公司 | 一种芯片调试代理装置及芯片调试方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111707A1 (en) * | 2000-12-15 | 2004-06-10 | Bliss Andrew L. | Debugger for multiple processors and multiple debugging types |
US7707558B2 (en) * | 2005-06-10 | 2010-04-27 | Symantec Corporation | Operating system loader modification |
US20070006202A1 (en) * | 2005-07-01 | 2007-01-04 | Mikkelsen Tim I | Dynamic mapping of shared libraries |
US10169199B2 (en) * | 2008-06-10 | 2019-01-01 | Microsoft Technology Licensing, Llc | Automatic model-specific debugger extensions |
US20130086558A1 (en) * | 2011-09-29 | 2013-04-04 | Microsoft Corporation | Testing Program Code in Multiple Process Modes |
-
2023
- 2023-02-21 CN CN202310171941.0A patent/CN116204429B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946486A (en) * | 1996-12-10 | 1999-08-31 | International Business Machines Corporation | Apparatus and method for tracing entries to or exits from a dynamic link library |
WO2013121951A1 (ja) * | 2012-02-13 | 2013-08-22 | 三菱電機株式会社 | プログラム管理システム |
CN103955371A (zh) * | 2014-04-29 | 2014-07-30 | 浙江银江研究院有限公司 | 对串口仪表进行数据采集的通用软件模块的设计开发方法 |
US10572245B1 (en) * | 2016-08-30 | 2020-02-25 | Amazon Technologies, Inc. | Identifying versions of running programs using signatures derived from object files |
JP2018156294A (ja) * | 2017-03-16 | 2018-10-04 | 三菱電機株式会社 | ソフトウェア検証装置およびソフトウェア検証プログラム |
CN109388576A (zh) * | 2018-10-29 | 2019-02-26 | 无锡中微爱芯电子有限公司 | 一种基于agdi接口的仿真调试工具 |
CN112579470A (zh) * | 2020-12-29 | 2021-03-30 | 中国科学院计算机网络信息中心 | 一种软件动态库调试的编译链接方法及系统 |
CN112631851A (zh) * | 2021-01-08 | 2021-04-09 | 北京集睿致远科技有限公司 | 一种芯片调试代理装置及芯片调试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116204429A (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273286B (zh) | 针对任务应用的场景自动化测试平台及方法 | |
US7316005B2 (en) | Data race detection using sequential program analysis | |
US6442663B1 (en) | Data collection and restoration for homogeneous or heterogeneous process migration | |
US8458681B1 (en) | Method and system for optimizing the object code of a program | |
US20150007140A1 (en) | Prioritization of tests of computer program code | |
CN108459962A (zh) | 代码规范性检测方法、装置、终端设备及存储介质 | |
US20050251719A1 (en) | Test case inheritance controlled via attributes | |
US20200301815A1 (en) | Using synthetic inputs to compare execution of different code versions | |
EP4014119A1 (en) | Data race analysis based on altering function internal loads during time-travel debugging | |
CN110069736A (zh) | 页面加载方法及设备 | |
US9779014B2 (en) | Resilient mock object creation for unit testing | |
WO2020190597A1 (en) | Emulating non-traced code with a recorded execution of traced code | |
WO2020190600A1 (en) | Using synthetic inputs during emulation of an executable entity from a recorded execution | |
Wotawa et al. | Generating distinguishing tests using the minion constraint solver | |
US11755458B2 (en) | Automatic software behavior identification using execution record | |
CN116204429B (zh) | 一种代码组织及其调试方法、系统及存储介质 | |
CN111124872A (zh) | 基于差异代码分析的分支检测方法、装置及存储介质 | |
CN114510285A (zh) | Ate算法码形动态加载的装置及方法 | |
CN114741296A (zh) | 单元测试方法、装置、电子设备和存储介质 | |
CN110275710B (zh) | 一种Java本地接口一致性检查方法及系统、存储介质及终端 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
CN110688430B (zh) | 一种获得数据旁路的方法、装置及电子设备 | |
CN112559336A (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
CN111367796A (zh) | 应用程序调试方法及装置 | |
Duanzhi | Program slicing |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |