EP3100160A1 - Procédé de désambiguïsation de code - Google Patents
Procédé de désambiguïsation de codeInfo
- Publication number
- EP3100160A1 EP3100160A1 EP15706863.6A EP15706863A EP3100160A1 EP 3100160 A1 EP3100160 A1 EP 3100160A1 EP 15706863 A EP15706863 A EP 15706863A EP 3100160 A1 EP3100160 A1 EP 3100160A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- symbol
- disambiguation
- renaming
- file
- dependency
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Definitions
- the invention relates to a method of disambiguation of code and in particular executable code.
- Executable code in the context of this application will be understood as any loadable byte sequence for execution by an operating system.
- ELF executable an Linkable Format, for executable and linkable Format
- PE Portable Executable, for Portable Executable
- executable files are also referred to the so-called executable files and so-called libraries, implied executable code.
- Some applications involve the implementation of a plurality of libraries.
- Each library exports functions that can be used by other executables or libraries that reference it. These other files are said to depend on the library.
- Each exported function has a name that identifies it.
- a file E depends on two libraries libA which exports a function fa and NbB which exports a function fb.
- the function fa calls a function fc of a version v1 of a library NbC.
- libA therefore depends on a version v1 of NbC
- the function fb calls a function fc of a version v2 of NbC.
- NbB therefore depends on a v2 version of NbC.
- the program fails and stops with an error message or the program behavior is undefined.
- Such a refactoring is also a heavy operation since it involves a new validation of all the code that is impacted, that is to say, a recovery of all unit tests and functional to verify the absence of impact on the behavior of the application using the modified code.
- the invention aims to remedy all or part of the disadvantages of the state of the art identified above, and in particular to provide means for adapting versions of a library without having to access or modify its source code.
- a configuration file that specifies, symbol renaming instructions.
- An instruction is used to select one or more symbols in a symbol table and specify, for the symbols, to select a renaming rule.
- the selection of symbols is, for example, according to their nature (exported or imported) and / or by name.
- the configuration file contains instructions for renaming dependencies.
- one aspect of the invention relates to a method of disambiguating an executable code file comprising a table of symbols, characterized in that it comprises the following steps:
- the method / device according to the invention may have one or more additional characteristics among the following, considered individually or according to the technically possible combinations:
- the method comprises the following steps:
- a renaming instruction has at least:
- a selection criterion of a symbol includes a symbol type code according to whether to select an exported symbol or an imported symbol;
- a selection criterion is a regular expression type mask applied to the name of a symbol or dependency
- a derivation rule takes into account version information of the executable code file to be produced.
- the invention also relates to a digital storage device storing a program executable by a machine and composed of instructions carrying out the method according to a combination of the above-mentioned characteristics.
- Figure 1 is a schematic view of an executable file
- FIG 2 an illustration of steps of the method according to the invention.
- identical or similar elements are identified by identical reference signs throughout the figures.
- Figure 1 is illustrated, schematically, the structure of an executable file.
- Figure 1 shows an executable file.
- Such a file is usually recorded on storage means.
- Such a file is usually loaded into working memory for the purpose of interpreting its contents by a microprocessor.
- the use of the term interpretation does not presume the nature of the contents of the file.
- This is binary code that can be loaded into memory.
- the file 1 01 executable comprises a zone 1 01 header.
- the header 1 01 describes the structure of the file.
- the header 1 01 indicates, via different fields, offsets of different sections of the file 1 01 executable.
- a particular first field 1 02 of the header 1 01 gives the offset of a section 103 symbol table.
- An offset is conventionally a relative byte distance at the beginning of the file or at the end of the header.
- a symbol is a reference to a code or data area in an executable file.
- a symbol is a way of describing an area to read or write.
- the table symbol section 103 is usually structured in table, each row of the table corresponding to a symbol.
- a row has at least three columns:
- the name of the symbol is used as input of the symbol table, that is to say as identifier of the symbol when executing the executable file 01, or when using the file 01 01 executable for editing links in an executable code production process.
- the type specifies whether the symbol is imported or exported. The symbol is exported if it can be used by another executable file than the one containing the symbol table. The symbol is imported if you have to search for the corresponding code or data area in another executable file than the one containing the symbol table.
- column 1 06 offset of the symbol has an offset if the symbol is exported. If the symbol is imported, then column 1 06 offset includes:
- the symbol table is also a table of dependencies.
- a dependency table is, in a simplified manner, an indexed list of executable file names.
- the knowledge of the offset of the dependency table, via a field of the header 1 01 for example, and the knowledge of an index, via column 1 06 offset of the symbol table, provides access to the name executable file.
- Figure two shows a step 201 of reading a disambiguation configuration.
- a disambiguation configuration is saved in a disambiguation file. Any or all of the parameters of the disambiguation configuration file could be provided on the command line.
- the method according to the invention is implemented by a processing computer 301 comprising a microprocessor 302 connected to storage means 303 via a bus 304.
- the method according to the invention therefore corresponds to instruction codes recorded on the means 303 storage and designated by a file name.
- the method according to the invention is therefore invoked via the name of the corresponding file. This name is, for example, entered in a command window, also called console. This name can be followed by one or more parameters.
- a disambiguation configuration file comprises: An identifier of a file to be processed, as well as a new name for the file resulting from the processing,
- a renaming instruction is either a symbol or a dependency.
- a renaming instruction to the following structure:
- a mask is for example according to one of the following syntaxes for all of the renaming instructions:
- a file selector type mask with wildcards :
- a derivation rule is, for example:
- step 201 the computer 301 loads a 305 disambiguation configuration file. This allows the computer 301 to know:
- a file 306 to be processed it is a file recorded on the means 303 for storing the computer 301 for processing,
- step 201 the processing computer 301 proceeds to a loading step 202 of the list of symbols.
- the table of symbols is also a table of dependencies.
- the computer 301 accesses the symbol table of the file 306 to be processed via the header of this file.
- the computer 301 analyzes each symbol to determine if one of the renaming instructions corresponds to the symbol. The analysis is as follows
- the selection of the symbols to be processed is according to whether they are imported or exported.
- a rename statement includes, in its structure, a code specifying whether it applies to exported, imported, or both symbols.
- a derivation instruction of the type is considered:
- the first renaming parameter provided in the disambiguation configuration file, is, for example, a version number of the processed file.
- the result file of the processing is a file named according to a version number.
- this name is filename.version. extension or:
- filename is the name of the file to be processed
- - extension is the extension of the file to be processed, if it has one
- version is the value of the version parameter.
- the renaming instructions can be integrated into the executable code corresponding to the invention. In this case they are loaded together with the executable code corresponding to the invention.
- LibC to LibC.v2 by renaming the exported symbols to postfixed by v2, or _v2 or equivalent string taking into account at least the version of the result file from processing - LibA to LibA.vl by renaming symbols imported from LibC by postfixing them in a manner consistent with the renaming performed to obtain LibC.vl and renaming the dependency to LibC in dependence on LibC.vl
- LibB to LibB.vl by renaming the symbols imported from LibC by post-fixing them in a consistent manner with the renaming done to obtain LibC.v2 and renaming the dependency to LibC in dependence on LibC.v2
- a digital storage device has been described for storing a program executable by a machine and composed of instructions implementing the method according to the invention as a hard disk, but it is understood that it can be any medium , removable or not. For example it could be a USB key, a CD, DVD or "BlueRay Disc”. This list is not exhaustive.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1450647A FR3016979B1 (fr) | 2014-01-27 | 2014-01-27 | Procede de desambiguisation de code |
| PCT/FR2015/050183 WO2015110771A1 (fr) | 2014-01-27 | 2015-01-27 | Procédé de désambiguïsation de code |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3100160A1 true EP3100160A1 (fr) | 2016-12-07 |
Family
ID=51688129
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP15706863.6A Withdrawn EP3100160A1 (fr) | 2014-01-27 | 2015-01-27 | Procédé de désambiguïsation de code |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10255050B2 (fr) |
| EP (1) | EP3100160A1 (fr) |
| FR (1) | FR3016979B1 (fr) |
| WO (1) | WO2015110771A1 (fr) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115576642A (zh) * | 2022-09-26 | 2023-01-06 | 成都赛力斯科技有限公司 | 一种命令执行方法、装置、设备及存储介质 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050114850A1 (en) * | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
| US7752613B2 (en) * | 2006-12-05 | 2010-07-06 | Intel Corporation | Disambiguation in dynamic binary translation |
-
2014
- 2014-01-27 FR FR1450647A patent/FR3016979B1/fr active Active
-
2015
- 2015-01-27 EP EP15706863.6A patent/EP3100160A1/fr not_active Withdrawn
- 2015-01-27 US US15/113,987 patent/US10255050B2/en active Active
- 2015-01-27 WO PCT/FR2015/050183 patent/WO2015110771A1/fr not_active Ceased
Non-Patent Citations (2)
| Title |
|---|
| None * |
| See also references of WO2015110771A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2015110771A1 (fr) | 2015-07-30 |
| FR3016979A1 (fr) | 2015-07-31 |
| FR3016979B1 (fr) | 2017-08-18 |
| US10255050B2 (en) | 2019-04-09 |
| US20160350092A1 (en) | 2016-12-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9483390B2 (en) | Three-dimensional GUI object stores in automation test tools | |
| US8245186B2 (en) | Techniques for offering and applying code modifications | |
| US8863108B2 (en) | Finding out if software will run on an operating system without installing that software | |
| Mahalik et al. | Practical mobile forensics | |
| EP2562641B1 (fr) | Système de portage d'application logicielle | |
| US8887122B2 (en) | Find and track information of interface usage of software libraries by other software | |
| WO2010145972A1 (fr) | Outil de développement de logiciel destiné à fournir des informations de contexte d'utilisateur afin d'améliorer la qualité de message à un moment de développement | |
| EP2453356B1 (fr) | Procédé, programme d'ordinateur et dispositif de sécurisation de code intermédiaire de programmation pour son exécution par une machine virtuelle | |
| US10216502B2 (en) | System module deployment optimization | |
| EP3100160A1 (fr) | Procédé de désambiguïsation de code | |
| WO2014117387A1 (fr) | Création de scripts de test basés sur des commandes utilisateur de test abstrait | |
| US20190079756A1 (en) | Automated application partitioning system | |
| CN104239112A (zh) | 一种设备驱动程序安装方法及装置 | |
| US9910647B2 (en) | Field size calculation and color coding display options usable in an emulated integrated development environment (IDE) | |
| EP2419823A1 (fr) | Procede d'assistance au developpement ou a l'utilisation d'un systeme complexe | |
| EP2043017A1 (fr) | Procédé d'exécution sécurisée d'une application | |
| WO2021130420A1 (fr) | Procédé et dispositif mettant en œuvre ce procédé pour générer et installer un code exécutable dans la mémoire d'un noyau d'une machine virtuelle depuis un hyperviseur | |
| CN119376741B (zh) | Java迁移兼容性处理方法、装置及存储介质 | |
| WO2019180376A1 (fr) | Procédé et système pour créer une image d'une application | |
| Hinkula | Full Stack Development with Spring Boot and React: Build modern and scalable web applications using the power of Java and React | |
| FR2947648A1 (fr) | Dispositif de compilation, procede de compilation et compilateur | |
| EP2738693A1 (fr) | Procédé d'enregistrement de données hiérarchisées | |
| FR2859548A1 (fr) | Procede de surveillance de l'execution de programmes sur un ordinateur | |
| CN113486330A (zh) | 应用程序运行方法、装置、设备和存储介质 | |
| FR2976373A1 (fr) | Procede de developpement d'un portail web, systeme de mise en oeuvre et produit programme d'ordinateur correspondant |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20160725 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20190408 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20191019 |