CN103761089B - The method that kinematic function call relation is determined based on register transfer language - Google Patents

The method that kinematic function call relation is determined based on register transfer language Download PDF

Info

Publication number
CN103761089B
CN103761089B CN201410015881.4A CN201410015881A CN103761089B CN 103761089 B CN103761089 B CN 103761089B CN 201410015881 A CN201410015881 A CN 201410015881A CN 103761089 B CN103761089 B CN 103761089B
Authority
CN
China
Prior art keywords
function
address
file
name
call relation
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.)
Expired - Fee Related
Application number
CN201410015881.4A
Other languages
Chinese (zh)
Other versions
CN103761089A (en
Inventor
向勇
汤卫东
杜香燕
孙卫真
马东超
邓雪峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201410015881.4A priority Critical patent/CN103761089B/en
Publication of CN103761089A publication Critical patent/CN103761089A/en
Application granted granted Critical
Publication of CN103761089B publication Critical patent/CN103761089B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

The present invention a kind of method that kinematic function call relation is determined based on register transfer language is disclosed, mainly for static function call relation can not analytic function pointer call with loadable module function calling relationship the problem of and design.Present invention detection function in system operation calls execution event, if detecting after call instruction, parse the corresponding function name in function entrance address of the instruction calls, statistics instruction number of times, output function name, time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer and module No. are called, and be saved in track data file;After if the instruction of detection is return instruction, output time, affiliated process number, affiliated thread number and affiliated top-of-stack pointer to track data file;The data format that processing obtains preassigned is carried out to the track data file, the track data file is transmitted into static function call relation generating means, the kinematic function calling figure of described function call relation is generated.

Description

The method that kinematic function call relation is determined based on register transfer language
Technical field
The present invention relates to function calling relationship technical field, and in particular to one kind determines dynamic based on register transfer language The method of function calling relationship.
Background technology
Function call graph, which can be macroscopical (source, to be realized by function call graph to the reading analysis of source code Code intermodule call relation) or microcosmic (calling in and recall relation specific to some function).Function call graph A kind of function call trend of source code static can be showed, function call shape when display systems or program operation is may also be used for State.For the accurate, convenient of analysis and efficiently, researcher develops the Core Generator of many function call graphs.
Static function calling figure Core Generator refers to set up on the basis of known source code, is needed to open according to different analyses Some effective objects are only source code such as Source Insight, Understand etc. in the instrument of hair, these instruments, some effects Object is intermediate result such as Codeviz, Egypt, LLVM and Open64 of compilation process generation etc..
Kinematic function calling figure Core Generator is built upon the function tune that acquisition system or software occur in the process of running With relation and the instrument of calling figure is depicted as, some instruments are also developed such as to obtain function call situation during operation Systemtap, gprof, KCachegrind, ftrace, pprof tool etc., they are that to be directed to kernel be pin a bit a bit To there is software, its based on purpose it is also different, but they be all based on function calling relationship analysis.
Gprof is to allow each function to call mcount functions in compiling, while function call can be preserved in internal memory Figure, the performance of system can be reduced by so doing, if that to the whole function call tracking of system, internal memory can be caused to use not enough. Ftrace principle is similar to gprof principle, simply it will not preserve function call graph in internal memory, and mcount makes With being also dynamic, nop can be replaced when needed according to the requirement of user and instructed for mcount.SystemTap be monitoring and Track the dynamic approach of the operation of operating linux kernel, SystemTap is using special interior of tools build one Core, but allow you to install the instrument dynamically at runtime, it passes through entitled Kprobes API (API) purpose is realized.Pprof tool, which are mainly used in analysis cpu operation bottlenecks, to be needed to produce application software interruption postscript Record relevant information.Gprof, ftrace and KCachegrind are all based on the pitching pile technology of static state, and its essence of ftrace is also Static pitching pile technology is that realization is upper different.And the trace tool that will be used herein is built upon on virtual machine , code will not be inserted to source code, therefore do not interfere with the system execution performance of itself.
KCachegrind can not the system of tracing into call, and gprof, ftrace etc. can the system of tracing into call but nothing Method traces into system starting process, and these problems will be all resolved in this paper instrument.SimSight is based on Simics's Dynamic trace tool, it is closest with this paper design concepts, but SimSight can not provide the static function with being dynamically combined Calling figure.
The content of the invention
In view of the above-mentioned problems, the present invention provide it is a kind of can clearly describe pointer function and loadable module call pass The method that kinematic function call relation is determined based on register transfer language of system.
To reach above-mentioned purpose, the method that the present invention determines kinematic function call relation based on register transfer language, institute The method of stating includes:
Detection function calls execution event in system operation,
If detecting after call instruction, the corresponding function name in function entrance address of the instruction calls, statistics instruction are parsed Number of times, output function name, call time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer and module No., and It is saved in track data file;
If after the instruction of detection is return instruction, output time, affiliated process number, affiliated thread number and affiliated stack top refer to Pin is to track data file;
The data format that processing obtains preassigned is carried out to the track data file, by the tracking data text after processing Part is transmitted into static function call relation generating means, generates the kinematic function calling figure of described function call relation.
Further, the generation method of the track data file includes:
The corresponding function name in function entrance address, function place file and line number are obtained by the parsing to file destination List;
Operating system nucleus symbol table is parsed, function entrance address and function name is obtained, is searched according to address and function name File and line number completion function information where the function of acquisition, and recorded in function list array;
Read module symbol table, the functional symbol table of acquisition module, and recorded in modularity function list array;
If given address is found in function list array, module name and function name are returned;
If given address is found in modularity function list array, the module name and function name of return system;
If given address can not find in the function list array and the modularity function list array, letter is judged Whether number exists in internal memory,
If existing in internal memory, memory address is read from internal memory, being successively read symbolic address after this address sentences It is disconnected with whether need to inquire about address consistent, and record core position, it is function name index address to read memory information from record position, Symbolic name length is read according to index address and symbolic address initial address if finding, the skew of looked into address is calculated, obtains Take function name length, and then return function name;
If being not present in internal memory, read in corresponding function name, slave module and read in the symbol table of load-on module Memory address, passes through the function name of module's address acquisition module.
Further, function calling relationship and transformation standard form are supplemented to the track data file of record, by data Static function call relation generating means are reached,
Wherein described supplement function calling relationship includes:Referred to according to the process number for calling and returning, thread number and stack top Pin come function call and come back for pairing, while obtain function the execution time, while data are converted into reticle Formula;
The data, which are uploaded to static function call relation generating means, to be included:
The catalogue and filename provided by FROM fields, respectively copies to record the kinematic function of corresponding source code file In call relation file;
Judge whether the function call is derived from this document according to the TO fields in each kinematic function call relation file,
If not the external call relation file of kinematic function for being then written to correspondence source code file of this document, sentences simultaneously Whether disconnected this document is derived from the catalogue, if not being written to the external call relation file of kinematic function of correspondence catalogue;
Outer according to last layer of catalogue calls relational file successively to return to upper level catalogue to fill in the outer of upper level catalogue Call relation file.
Further, the step of methods described also includes showing the function call relationship graph, and the letter to having generated The step of number call graph and list are cached.
The present invention, combine function call graph instrument dynamic tool can by between the file in the specified time, intermodule Call relation represented by the form of line, it can be found that the pointer type function call and loadable module of run-time binding Function call.And because the method for dynamic tracking is given and called and return instruction, can tracking system start portion of time Function calling relationship, and the instrument can also be combined with other kinematic function trace tools, and the result of other instruments is shown Show.
Brief description of the drawings
Fig. 1 is that the present invention determines that the method for kinematic function call relation obtains function name and mould based on register transfer language The flow chart of block name.
Fig. 2 is the data acquisition algorithm for the method that the present invention determines kinematic function call relation based on register transfer language Flow chart.
Embodiment
With reference to Figure of description, the present invention will be further described.
The method that the present embodiment determines kinematic function call relation based on register transfer language, methods described includes:
Detection function calls execution event in system operation,
If detecting after call instruction, the corresponding function name in function entrance address of the instruction calls, statistics instruction are parsed Number of times, output function name, call time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer and module No., and It is saved in track data file;
If after the instruction of detection is return instruction, output time, affiliated process number, affiliated thread number and affiliated stack top refer to Pin is to track data file;
The data format that processing obtains preassigned is carried out to the track data file, by the tracking data text after processing Part is transmitted into static function call relation generating means, generates the kinematic function calling figure of described function call relation.
As shown in figure 1, discriminant function is in kernel or in each loadable module successively.The tracking data text The generation method of part includes:
The corresponding function name in function entrance address, function place file and line number are obtained by the parsing to file destination List;
Operating system nucleus (system.map) symbol table is parsed, function entrance address and function name are obtained, according to address File and line number completion function information where searching the function obtained with function name, and recorded in function list array;
Read module symbol table, the functional symbol table of acquisition module, and recorded in modularity function list array;
If given address is found in function list array, module name and function name are returned;
If given address is found in modularity function list array, the module name (kernel) and function of return system Name, function name is obtained by tabling look-up;
If given address can not find in the function list array and the modularity function list array, letter is judged Whether number exists in internal memory,
If existing in internal memory, memory address is read from internal memory, being successively read symbolic address after this address sentences It is disconnected with whether need to inquire about address consistent, and record core position, it is function name index address to read memory information from record position, Symbolic name length is read according to index address and symbolic address initial address if finding, the skew of looked into address is calculated, obtains Take function name length, and then return function name;
If being not present in internal memory, read in corresponding function name, slave module and read in the symbol table of load-on module Memory address, passes through the function name of module's address acquisition module.
The present embodiment, detects that plug-in unit (LinuxCallMonitor) is obtained in function call process using kernel function call What is produced calls and return instruction, the law path and line number then obtained by the interior nuclear symbol and parsing elf files of acquisition Information is corresponding with command information, the record after being updated.The realization of LinuxCallMonitor pin functions depends on kernel (being provided in virtual machine-S2E is used to obtain for symbol table parsing plug-in unit (SymbolResolver) and FunctionMonitor plug-in units Take the detection of system inner function call instruction), CallSignal can be used to detect letter after block translation event by registering Number calls execution event, detects and goes out the corresponding function in address to the function entrance address resolution of the instruction calls after call instruction Name, statistics instruction number of times, output function name, call time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer with And module No., and it is saved in track data file.When the instruction of detection is return instruction only output time, affiliated process number, Affiliated thread number and affiliated top-of-stack pointer are to track data file
The module symbolic table and parsing operating system provided when being compiled using SymbolResovler plug-in units with kernel can be held Part (vmlinux) elf forms of composing a piece of writing obtain file line number where function name and function, obtain and include function entrance address, function The symbol table of name and line number.It is only function entrance address that virtual machine-S2E, which obtains function call, how correctly to parse address Corresponding function name is the key issue of dynamic tracking.The mode for obtaining symbol table can be largely classified into two kinds of file destinations Symbol table when symbol table and system operation in internal memory.Symbol table in file destination can be divided into three classes:The overall situation in this document The local symbol in whole district's symbol and this document in other files that symbol, this document refer to, for these symbol tables The nm that GNU binutils can be used to provide is obtained, but can only obtain the symbol table of kernel itself, is loaded when being run to kernel Module in symbol it is then helpless, and S2E is as the virtual machine operated on main frame, and we can be by from client computer Symbol table is directly obtained and searched in internal memory.
Version later Linux2.6 introduces kallsyms functions, and kallsyms is all symbols used in kernel Number address and title are connected into kernel file, so that kernel can be loaded into kallsyms information in internal memory after starting Facilitate kernel tailoring.Therefore make it that internal memory also has a System.map by the realization of kallsyms mechanism, thus can be with The symbol table in kernel is extracted using the principle of kallsyms mechanism, and this table contains system and starts post-loaded module Symbolic information.
To the track data file supplement function calling relationship and transformation standard form of record, data are uploaded to static letter Number call relation generating means,
Wherein described supplement function calling relationship includes:Referred to according to the process number for calling and returning, thread number and stack top Pin come function call and come back for pairing, while obtain function the execution time, while data are converted into reticle Formula;
As shown in Fig. 2 being processed as after normal data, the kinematic function in each file and catalogue is handled successively and calls pass It is file.The data, which are uploaded to static function call relation generating means, to be included:
The catalogue and filename provided by FROM fields, respectively copies to record the kinematic function of corresponding source code file In call relation file (.dynfctrlt);
Should according to whether the TO field functions in each kinematic function call relation file (.dynfctrlt) file are derived from File,
If not the external call relation file of the kinematic function for being then written to corresponding source code file of this document (.dynoutlst), while judging whether this document is derived from the catalogue, if not the kinematic function for being written to correspondence catalogue is external Call relation file (.dynDoutlst);
Successively returned according to external call relation file (.dynDoutlst) file of the kinematic function of last layer of catalogue First class catalogue fills in the .dynDoutlst files of upper level catalogue.
Further, the step of methods described also includes showing the function call relationship graph, and the letter to having generated The step of number call graph and list are cached, the step is realized by browser.
Methods described carrying out practically process is as follows:
The first step, environmental requirement and the installation of necessary software kit:
1st, hosted environment ubuntu64 12.04 64
2nd, bag to be mounted is needed:
$sudo apt-get install build-essential
$sudo apt-get install subversion
$sudo apt-get install git
$sudo apt-get install gettext
$sudo apt-get install liblua5.1-dev
$sudo apt-get install libsdl1.2-dev
$sudo apt-get install libsigc++-2.0-dev
$sudo apt-get install binutils-dev
$sudo apt-get install python-docutils
$sudo apt-get install python-pygments
$sudo apt-get install nasm
$sudo apt-get build-dep llvm-3.0
$sudo apt-get build-dep qemu
3rd, download s2e installation kit and s2e is installed
$mkdir S2EDIR
$cd$S2EDIR
$git clone https://github.com/dslab-epfl/s2e.git$mkdir build
$cd build
$make–f../s2e/Makefile
Second step, environmental requirement and the installation of necessary software kit:
1st, LinuxCallMonitor plug-in units
A, registration onTranslateBlockStart events
B, acquisition are called and return instruction
C, call sign table obtain function name, module name
D, output call event package containing function name, module name, Time To Event, current process number, current thread number with And current top-of-stack pointer
Particular content is as follows:
1.1 initialization initialize
Load SymbolResolver, FunctionMonitor:(s2e()->getPlugin(“”));
Open first written document XXX-FuncTracer_00000.dat
Register block translation event (onTranslateBlockStart)
1.2 slotTranslateBlockStart events
Detect that call performs event by CallSignal,
Detect call events and the event is handled by callHandler
1.3 callHandler
Pass through address acquisition respective function name:Symtab_search functions in SymbolResolver are realized;
The number of times of call and ret events is calculated simultaneously, if number of times is more than 20000000, is opened one and new is write text Part, resets while counting;
The call back function that ret is performed is registered, the return of detection function simultaneously handles return information retHandler;
Outgoing event time of origin, process number, thread number, top-of-stack pointer, module name, function name.
1.4 retHandler
Call and ret number of times is calculated, if number of times is more than 20000000, a new written document is opened, counts simultaneously Number is reset;
Outgoing event time of origin, process number, thread number, top-of-stack pointer.
2nd, SymbolResolver plug-in units
A, acquisition kernel, module symbolic table
B, parsing vmlinux file elf forms obtain line number where function name and function
C, formation symbol list:Line number where address, function name, function
2.1 initialization initialize
Load system.map, vmlinux;
Read_vm () is called to obtain the list of the corresponding function name in function entrance address, function place file and line number;
System.map is read, the symbol table is parsed, the function institute obtained according to address and function name and read_vm () In file and line number, completion function information, and it recorded addrsym_tab [] in function list array;Remembered according to symbolic information Record symbol table is started over and other address informations, is mainly had:__start__ksymtab、__stop__ksmtab、 Kallsyms_addresses (all symbolic addresses), kallsyms_num_syms (total number of symbols), kallsyms_names, Kallsyms_markers, kallsyms_token_table, kallsyms_token_index, modules, they are corresponding Address information.
Read module symbol table, the functional symbol table of acquisition module, and recorded addrmod_tab [] in array.
2.2symtab_search
File and line number according to where address return function name, function.
If given address is found in addrsym_tab [], kernel (module name) and function name are returned;
If given address is found in addrmod_tab [], module name (system) and function name are returned;
Otherwise:
Kallsyms_num_syms (total number of symbols) is read from internal memory;From internal memory kallsyms_addresses it Symbolic address judgement is once read afterwards whether consistent with that need to inquire about address, and record core position;Internal memory is read from record position Information is function name index address, and symbolic name length is read according to index address and symbolic address initial address if finding, The skew of looked into address is calculated, function name length, and then return function name is obtained;Otherwise read in the symbol table of load-on module Take corresponding function name
2.3search_func_line、read_vm、describe_elf_hdr、dir_file_table、describe_ one_section、describe_elf_sections、dwarf_tag_name、dwarf_attr_name、is_compile_ unit、output_compilation_unit_header、read_1_byte、read_signed_leb128、describe_ One_compile_unit etc. be parse vmlinux files elf forms obtain function entrance address and respective function name and The function of file line number where function and dependence function, are not describing its principle and process here.
3rd step, compiling s2e, operation s2e:
1st, Makefile.target is changed
2nd, s2e/qemu/Makefile.target files are changed:
Two rows are added after s2eobj-y+=s2e/Plugins/ConsistencyModels.o:
S2eobj-y+=s2e/Plugins/LinuxCallMonitor.o
S2eobj-y+=s2e/Plugins/SymboleResolver.o
3rd, s2e is compiled
4th, the kernel of correspondence version is compiled, this project is linux-3.5.4, and cpu is 32:That is make i386_ defconfig。
Line number is defined in order to obtain function, thus needs to choose debug information when compiling kernel:In menuconfig Kernel hacking options, choose kernel debugging and Compile kernel with debug info.
Arch/x86/boot/bzIamge, vmliux, System.map after the completion of compiling, need to use in s2e operations 's.
5th, config.lua is configured
6th, system s2e runtime disks are created
A, complication system:
A, establishment blank panel
qemu-img create–f raw name.raw*G;Name mirror images name, the size of the * G disks is how many G
B, installation system, are used without s2e qemu
qemu-system-i386name.raw–cdrom***.iso;* * .iso system installation files, from cdrom peaces Dress.
C, disk type conversion;S2e can only receive the disk of qcow2 types
qemu-img convert–c name.raw–o qcow2new-name.qcow2
Can d, test system normally start;Without s2e
qemu-system-i386–kernel bzImage–hdc name.raw-append“/root/sda1”; The kernel mirror image compiled before bzImage
B, single system busybox (www.cnblogs.com/senix/archive/2013/02/21/ 2921221.html)
A, download busybox source codes:
That I downloads is busybox-1.21.0,
Decompression:tar–xf busybox-1.21.0.tar.bz2
B, compiling busybox
make deconfig
make menuconfig:Change Busybox Settings Build Option [*] Build Busybox as a static binary(no shared libs)
make
make install
C, linux simulated by qemu
(1), write initrd and start script
(2) structure initrd mirror image scripts, are write
(3) startup script, is write, busybox is tested
7th, operation s2e records perform trace
Write automatic running script run.sh
A, complication system
“#!/bin/sh
i386-s2e-softmmu/qemu-system-i386-kernel arch/x86/boot/bzImage-hdc New-name.qcow2-append " root=/dev/sda1 "-s2e-config-file config.lua-s2e-verbose
B, single system
“#!/bin/sh
LINUX=$ (find linux*-maxdepth 0)
i386-s2e-softmmu/qemu-system-i386–kernel$LINUX/arch/i386/boot/ BzImage-initrd rootfs.img-append " root=/dev/ram rdinit=sbin/init "-s2e- Config-file config.lua-rtc clock=vm
8th, trace results
Current result fixes name, is placed on/mnt/freenas/dyn-trace-log/b-FuncTracer_*.dat, should As a result no row only display call functions or return, each file record 20000000 is instructed.Form:
calltime,pid,module,pc/call name
9th, result treatment
Think only one of which stack, stack top is function call person.
A, polishing function calling relationship:process.py.Intermediate result form is:
Calltime, pid, module, tid, exp, pc/call name, from, pc/call name algorithms:
Stack top progressively scans to be empty to result, and if call rows then the corresponding function pop downs of the call, who calls this Function passes through the previous content obtaining of current stack top;If ret then thread, process number and the identical stack content of top-of-stack pointer Pop;Until terminating.
B, transformation standard form:s2eout-standardout.rb.Form is:
PID:pid TID:tid CALL_TIME:time RETURN_TIME:NULL FROM:call name,/ file.c:line TO:call name1,/file1.c:line1AT:NULL time:function run time
Note:Where calls the function currently without.
C, the kinematic function for by FROM fields data being stored in respectively corresponding source code file in respective directories call pass In being file (.dynfctrlt files):systemtapdata.rb
Data format is constant, and the catalogue and filename provided first by FROM fields, the result that b is recorded is copied to respectively In the .dynfctrlt files of corresponding source code file.Secondly according to the TO field functions in each .dynfctrlt files whether From this document, if not the .dynoutlst files for being then written to corresponding source code file of this document, while judging to be somebody's turn to do Whether file is derived from the catalogue, the no .dynDoutlst files for being written to correspondence catalogue.Finally according to last layer of catalogue .dynDoutlst file successively returns to the .dynDoutlst files that upper level catalogue fills in upper level catalogue.
More than, only presently preferred embodiments of the present invention, but protection scope of the present invention is not limited thereto, and it is any to be familiar with sheet Those skilled in the art the invention discloses technical scope in, the change or replacement that can be readily occurred in should all be covered Within protection scope of the present invention.Therefore, the protection domain that protection scope of the present invention should be defined by claim is defined.

Claims (4)

1. a kind of method that kinematic function call relation is determined based on register transfer language, it is characterised in that:
Methods described includes:
Detection function calls execution event in system operation,
If detecting after call instruction, the corresponding function name in function entrance address of the instruction calls is parsed, statistics instructs number of times, Output function name, time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer and module No. are called, and be saved in Track data file;
If after the instruction of detection is return instruction, output time, affiliated process number, affiliated thread number and affiliated top-of-stack pointer are arrived Track data file;
The data format that processing obtains preassigned is carried out to the track data file, the track data file after processing is passed Transport in static function call relation generating means, generate the kinematic function calling figure of described function call relation.
2. the method according to claim 1 that kinematic function call relation is determined based on register transfer language, its feature It is:The generation method of the track data file includes:
File and the row of line number where obtaining the corresponding function name in function entrance address, function by the parsing to file destination Table;
Operating system nucleus symbol table is parsed, function entrance address and function name is obtained, is searched and obtained according to address and function name Function where file and line number completion function information, and recorded in function list array;
Read module symbol table, the functional symbol table of acquisition module, and recorded in modularity function list array;
If given address is found in function list array, module name and function name are returned;
If given address is found in modularity function list array, the module name and function name of return system;
If given address can not find in the function list array and the modularity function list array, discriminant function is It is no to exist in internal memory,
If existing in internal memory, memory address is read from internal memory, be successively read after this address symbolic address judge with Address need to be inquired about whether consistent, and record core position, it is function name index address to read memory information from record position, if looking into To then symbolic name length is read according to index address and symbolic address initial address, the skew of looked into address is calculated, letter is obtained Several length, and then return function name;
If being not present in internal memory, read in the symbol table of load-on module in corresponding function name, slave module and read internal memory Address, passes through the function name of module's address acquisition module.
3. the method according to claim 1 that kinematic function call relation is determined based on register transfer language, its feature It is:To the track data file supplement function calling relationship and transformation standard form of record, data are uploaded to static function Call relation generating means,
Wherein described supplement function calling relationship includes:According to the process number for calling and returning, thread number and top-of-stack pointer come Function is called and come back for pairing, while the execution time of function is obtained, while data are converted into reference format;
The data, which are uploaded to static function call relation generating means, to be included:
The catalogue and filename provided by FROM fields, the kinematic function that record is copied to corresponding source code file respectively is called In relational file;
Judge whether the function call is derived from this document according to the TO fields in each kinematic function call relation file,
If not the external call relation file of kinematic function for being then written to correspondence source code file of this document, while judging to be somebody's turn to do Whether file is derived from the catalogue, if not being written to the external call relation file of kinematic function of correspondence catalogue;
Upper level catalogue is successively returned to according to the external call relation file of the kinematic function of last layer of catalogue and fills in upper level mesh The external call relation file of kinematic function of record.
4. the method according to claim 1 that kinematic function call relation is determined based on register transfer language, its feature It is:The step of methods described also includes showing the function call relationship graph, and the function call relationship graph to having generated The step of being cached with list.
CN201410015881.4A 2014-01-14 2014-01-14 The method that kinematic function call relation is determined based on register transfer language Expired - Fee Related CN103761089B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410015881.4A CN103761089B (en) 2014-01-14 2014-01-14 The method that kinematic function call relation is determined based on register transfer language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410015881.4A CN103761089B (en) 2014-01-14 2014-01-14 The method that kinematic function call relation is determined based on register transfer language

Publications (2)

Publication Number Publication Date
CN103761089A CN103761089A (en) 2014-04-30
CN103761089B true CN103761089B (en) 2017-09-15

Family

ID=50528333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410015881.4A Expired - Fee Related CN103761089B (en) 2014-01-14 2014-01-14 The method that kinematic function call relation is determined based on register transfer language

Country Status (1)

Country Link
CN (1) CN103761089B (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959859B (en) * 2017-03-30 2021-08-24 北京奇虎科技有限公司 Calling method and device of system calling function
CN108874470B (en) * 2017-05-11 2023-04-07 腾讯科技(深圳)有限公司 Information processing method, server and computer storage medium
CN107291480B (en) * 2017-08-15 2020-12-15 中国农业银行股份有限公司 Function calling method and device
CN109426702B (en) * 2017-08-31 2021-05-28 武汉斗鱼网络科技有限公司 iOS platform file reading protection method, storage medium, electronic device and system
CN108628744B (en) * 2018-04-28 2022-03-15 深圳市风云实业有限公司 Fault diagnosis method and device and electronic equipment
CN110737465B (en) * 2018-07-20 2023-09-22 深圳市大梦龙途网络科技有限公司 Method and related device for acquiring function call path
CN111258630B (en) * 2018-12-03 2023-05-30 斑马智行网络(香港)有限公司 Function call relation detection method, device, equipment and storage medium
CN109614332B (en) * 2018-12-07 2021-11-02 中国航空工业集团公司洛阳电光设备研究所 Hardware virtualization layered modeling method
CN110659088B (en) * 2019-09-20 2022-11-25 浙江杰芯科技有限公司 Method and system for expanding program under embedded environment
CN111104104A (en) * 2019-11-04 2020-05-05 珠海亿智电子科技有限公司 Method and device for visualizing function call time and statistical result and readable medium
CN112181374B (en) * 2020-09-25 2024-03-12 广州力挚网络科技有限公司 Data integration method and device, electronic equipment and storage medium
CN112363779A (en) * 2020-11-25 2021-02-12 王志平 Safety control method for dynamic link program
WO2022155937A1 (en) * 2021-01-23 2022-07-28 王志平 Security control method for dynamic link program
CN113505007A (en) * 2021-07-12 2021-10-15 北京鲸鲮信息系统技术有限公司 Protocol stack data transmission method based on Linux system, computer equipment and storage medium
CN113946347B (en) * 2021-09-29 2022-07-08 北京五八信息技术有限公司 Function call detection method and device, electronic equipment and readable medium
CN116909627B (en) * 2023-09-13 2023-12-12 杭州笨马网络技术有限公司 Executable program analysis method and device, electronic equipment and storage medium
CN117149499B (en) * 2023-10-30 2024-01-19 北京麟卓信息科技有限公司 Memory occupation optimization method for kernel module based on dynamic symbol table

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
CN103365774A (en) * 2013-08-22 2013-10-23 北京航空航天大学 Transient error detection method based on function call relationship

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990792B2 (en) * 2008-05-26 2015-03-24 Samsung Electronics Co., Ltd. Method for constructing dynamic call graph of application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
CN103365774A (en) * 2013-08-22 2013-10-23 北京航空航天大学 Transient error detection method based on function call relationship

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
S2E: A Platform for In-Vivo Multi-Path Analysis of Software Systems;Vitaly Chipounov等;《ACM SINGARCH Computer Architecture News》;1-4;20111231;第39卷(第1期);第265-278页 *
SimSight:a virtual machine based dynamic call graph generator;XuelingChen;《University of Nebraska-Lincoln硕士学位论文》;20101231;摘要,第8、18-30页 *

Also Published As

Publication number Publication date
CN103761089A (en) 2014-04-30

Similar Documents

Publication Publication Date Title
CN103761089B (en) The method that kinematic function call relation is determined based on register transfer language
Deitel Java how to program
Friesen Javafor Android
Friesen Beginning Java 7
Zakhour et al. The Java tutorial: a short course on the basics
Simmonds Mastering Embedded Linux Programming
Lacamera Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems
Simmonds Mastering embedded Linux programming
Yuan Windows graphics programming: Win32 GDI and DirectDraw
Gallardo et al. The Java Tutorial: A Short Course on the Basics
Deitel et al. Java SE 8 for programmers
Ganeshan Spring MVC: Beginner's Guide
Vaduva Learning Embedded Linux Using the Yocto Project
Muller et al. Semantic patches considered helpful
Jana Java and object-oriented programming paradigm
Vaduva et al. Linux: Embedded Development
Ye Embedded programming with Android: bringing up an Android system from scratch
Reznikov Creating tailored OS images for embedded systems using Buildroot
Hewardt et al. Advanced windows debugging
JP2002014847A (en) Device for checking program and method for the same and recording medium with checking program stored
Wilcox Porting to the Symbian platform: Open mobile development in C/C++
Sun et al. Building coreboot with Intel FSP
Dakin CONCEPT-The COsmological $ N $-body CodE in PyThon
Uzlu et al. Utilizing Rust Programming Language for EFI-Based Bootloader Design.
Giometti Linux Device Driver Development Cookbook: Develop Custom Drivers for Your Embedded Linux Applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170915

Termination date: 20190114

CF01 Termination of patent right due to non-payment of annual fee