CN103761089A - Method for determining dynamic function call relation based on register transfer languages - Google Patents

Method for determining dynamic function call relation based on register transfer languages Download PDF

Info

Publication number
CN103761089A
CN103761089A CN201410015881.4A CN201410015881A CN103761089A CN 103761089 A CN103761089 A CN 103761089A CN 201410015881 A CN201410015881 A CN 201410015881A CN 103761089 A CN103761089 A CN 103761089A
Authority
CN
China
Prior art keywords
function
file
address
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.)
Granted
Application number
CN201410015881.4A
Other languages
Chinese (zh)
Other versions
CN103761089B (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

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

The invention discloses a method for determining a dynamic function call relation based on register transfer languages, mainly aiming to solve the problems in design that a call relation of a function pointer and a loadable module function cannot be analyzed through a static function call relation. The method includes: detecting function call executing events during system operation, if call instructions are detected, analyzing function names corresponding to function entry addresses called through the instructions, performing statistics on number of the instructions and outputting the function names, call occurrence time, subordinate process numbers, subordinate threading numbers, subordinate stack top pointers and module numbers prior to storing to a trace data file; if the detected instructions are return instructions, outputting time, the subordinate process numbers, the subordinate threading numbers and the subordinate stack top pointers to the track data file; processing the track data file to acquire the data format with predetermined standard, transmitting the track data file to a static function call relation generating device so as to generate a dynamic function call graph describing the function call relation.

Description

Based on register transfer language, determine the method for kinematic function call relation
Technical field
The present invention relates to function calling relationship technical field, be specifically related to a kind of method of determining kinematic function call relation based on register transfer language.
Background technology
To the reading analysis of source code, can realize by function call figure, function call figure can be macroscopical (source code intermodule call relation), can be also (specific to some functions call in and recall relation) of microcosmic.Function call figure can represent a kind of function call trend of source code static, function call state in the time of also can being used for display systems or program operation.Accurate, convenient and efficient for what analyze, the many function call map generalizations of software engineering researchers invent instrument.
Static function calling graph Core Generator refers on the basis that is based upon known source code, the instrument that need to develop according to different analyses, in these instruments some effective object be only source code as Source Insight, Understand etc., some effective object be compilation process generate intermediate result as Codeviz, Egypt, LLVM and Open64 etc.
Kinematic function calling graph Core Generator is to be based upon the function calling relationship that the system of obtaining or software occurs in operational process the instrument that is depicted as calling graph, function call situation while moving in order to obtain has also been developed some instruments as Systemtap, gprof, KCachegrind, ftrace, pprof tool etc., they are aimed at kernel some thing a bit for there being software, its based on object also different, but they are all based on function calling relationship analysis.
Gprof allows each function all call mcount function when compiling, can in internal memory, preserve function call figure simultaneously, does like this performance of meeting reduction system, if the whole function calls of system are followed the tracks of, can cause internal memory to use not enough.The principle of Ftrace is similar to the principle of gprof, and just it can not preserve function call figure in internal memory, and the use of mcount is also that can replace when needed nop according to user's requirement is mcount instruction dynamically.SystemTap is the dynamic approach of monitoring and following the tracks of the operation of operating linux kernel, SystemTap is not used special kernel of tools build, but allowing you when operation, this instrument to be dynamically installed, it realizes this object by the application programming interface (API) of a Kprobes by name.Pprof tool is mainly used in analyzing cpu operation bottleneck and need to produces and interrupt rear recording-related information application software.Gprof, ftrace and KCachegrind are the pitching pile technology based on static, and its essence of ftrace is also that static pitching pile technology just realizes above different.And the trace tool that will adopt is herein based upon on virtual machine, can not insert code to source code, therefore can not affect the performance of system execution itself.
KCachegrind cannot trace into system call, and gprof, ftrace etc. can trace into system call but cannot trace into system starting process, and these problems all will be resolved in instrument herein.The dynamic trace tool of SimSight based on Simics, the most approaching with this paper design concept, but SimSight cannot provide static state and the function call figure dynamically combining.
Summary of the invention
For the problems referred to above, the invention provides a kind of can know describe pointer function and loadable module call relation based on register transfer language, determine the method for kinematic function call relation.
For achieving the above object, the present invention is based on register transfer language and determine the method for kinematic function call relation, described method comprises:
In system operational process, detection function calls execution event,
If detect after call instruction, resolve the function name corresponding to function entrance address of this instruction calls, statistics instruction number of times, output function name, calls time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer and module No., and is saved in track data file;
If after the instruction detecting is link order, output time, affiliated process number, affiliated thread number and affiliated top-of-stack pointer are to track data file;
Described track data file is processed to the data layout that obtains preassigned, described track data file is transferred in static function call relation generating apparatus, generate the kinematic function calling graph of described function call relation.
Further, the generation method of described track data file comprises:
By the parsing of file destination being obtained to the list of function name corresponding to function entrance address, function place file and line number;
Parse operation system kernel symbol table, obtains function entrance address and function name, searches function place file and the line number completion function information obtained, and be recorded in function list array according to address and function name;
Read module symbol table, the functional symbol table of acquisition module, and be recorded in modularity function list array;
If given address is found in function list array, return to module name and function name;
If given address is found in modularity function list array, the module name of retrieval system and function name;
If given address all can not find in described function list array and described modularity function list array, whether discriminant function exists in internal memory,
If exist in internal memory, from internal memory, read memory address, after the memory address of internal memory, once read symbolic address judgement and need inquire address whether consistent, and record core position, from record position, reading memory information is function name index address, if find, according to index address and symbolic address start address, reads symbolic name length, calculates the skew of looked into address, obtain function name length, and then return function name;
If do not exist in internal memory, in the symbol table of load-on module, read corresponding function name, from module, read memory address, by the function name of module's address acquisition module.
Further, the disposal route of the track data file to record comprises: supplement function calling relationship transformation standard form and data upload to static function calling graph generating apparatus,
Wherein said supplementary function calling relationship comprises: according to the process number that calls and return, thread number and top-of-stack pointer, come, the calling and return and match of function, to obtain the execution time of function, the while is converted into standard format data simultaneously;
Described data upload to static function calling graph generating apparatus comprises:
The catalogue providing by FROM field and filename, copy to record respectively in the kinematic function call relation file of respective sources code file;
According to the TO field in each kinematic function call relation file, judge whether this function call is derived from this file,
If not the external call relation file of the kinematic function that is written to corresponding source code file of this file judges whether this file is derived from this catalogue simultaneously, if not be written to the external call relation file of the kinematic function of corresponding catalogue;
According to last one deck catalogue outer, call relational file and successively return to upper level catalogue and fill in the outer relational file of calling of upper level catalogue.
Further, described method also comprises the step that shows described function call relationship graph, and the function call relationship graph having generated and list is carried out to the step of buffer memory.
The present invention, combine function call figure instrument dynamic instrument can by between the file in the fixed time, intermodule call relation represents by the form of line, can find the pointer type function call of run-time binding and the function call of loadable module.And because the method for dynamically following the tracks of gives call-and-return instruction, can tracker start the function calling relationship of portion of time, and this instrument can also and other kinematic function trace tool combinations, the result of other instruments is shown.
Accompanying drawing explanation
Fig. 1 the present invention is based on register transfer language to determine that the method for kinematic function call relation obtains the process flow diagram of function name and module name.
Fig. 2 is the data acquisition algorithm flow chart that the present invention is based on register transfer language and determine the method for kinematic function call relation.
Embodiment
Below in conjunction with Figure of description, the present invention will be further described.
The present embodiment is determined the method for kinematic function call relation based on register transfer language, described method comprises:
In system operational process, detection function calls execution event,
If detect after call instruction, resolve the function name corresponding to function entrance address of this instruction calls, statistics instruction number of times, output function name, calls time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer and module No., and is saved in track data file;
If after the instruction detecting is link order, output time, affiliated process number, affiliated thread number and affiliated top-of-stack pointer are to track data file;
Described track data file is processed to the data layout that obtains preassigned, described track data file is transferred in static function call relation generating apparatus, generate the kinematic function calling graph of described function call relation.
The generation method of described track data file comprises:
By the parsing of file destination being obtained to the list of function name corresponding to function entrance address, function place file and line number;
Parse operation system kernel (system.map) symbol table, obtains function entrance address and function name, searches function place file and the line number completion function information obtained, and be recorded in function list array according to address and function name;
Read module symbol table, the functional symbol table of acquisition module, and be recorded in modularity function list array;
If given address is found in function list array, return to module name and function name;
If given address is found in modularity function list array, the module name of retrieval system (kernel) and function name, function name obtains by tabling look-up;
If given address all can not find in described function list array and described modularity function list array, whether discriminant function exists in internal memory,
If exist in internal memory, from internal memory, read memory address, after the memory address of internal memory, once read symbolic address judgement and need inquire address whether consistent, and record core position, from record position, reading memory information is function name index address, if find, according to index address and symbolic address start address, reads symbolic name length, calculates the skew of looked into address, obtain function name length, and then return function name;
If do not exist in internal memory, in the symbol table of load-on module, read corresponding function name, from module, read memory address, by the function name of module's address acquisition module.
The present embodiment, utilize kernel function call to detect plug-in unit (LinuxCallMonitor) and obtain calling and link order of producing in function call process, then by the interior nuclear symbol obtaining and function path and line number information and instruction information correspondence that parsing elf file obtains, obtain the record after upgrading.The realization of LinuxCallMonitor pin function depends on Kernel Symbol Table and resolves plug-in unit (SymbolResolver) and FunctionMonitor plug-in unit (detection for obtaining system inner function call instruction is provided in virtual machine-S2E), by carrying out detection function with CallSignal after registration block translation event, call execution event, after call instruction being detected, the function entrance address resolution of this instruction calls is gone out to function name corresponding to address, statistics instruction 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 be saved in track data file.When the instruction detecting while being link order only output time, affiliated process number, affiliated thread number and affiliated top-of-stack pointer to track data file
The module symbol table providing while utilizing SymbolResovler plug-in unit and recompile kernel and parse operation system executable file (vmlinux) elf form obtain function name and function place file line number, obtain the symbol table of inclusion function entry address, function name and line number.It is only function entrance address that virtual machine-S2E obtains function call, and how correctly parsing function name corresponding to address is the key issue of dynamically following the tracks of.The mode of obtaining symbol table mainly can be divided into two kinds of symbol tables in symbol table and the system run-time memory in file destination.Symbol table in file destination can be divided three classes: the whole district's symbol in other file that the globak symbol in presents, presents have been quoted and local symbol in presents, the nm that can use GNUbinutils to provide for these symbol tables obtains, but can only obtain the symbol table of kernel self, symbol in the module loading when kernel is moved is helpless, and S2E is as the virtual machine operating on main frame, we can be by directly obtaining and search symbol table from the internal memory of client computer.
The later version of Linux2.6 has been introduced kallsyms function, kallsyms is connected all symbolic addresses used in kernel into kernel file with title, thereby the information of kallsyms can be loaded in internal memory and facilitate kernel to debug after kernel is started.Therefore by the realization of kallsyms mechanism, make internal memory also have a System.map, thereby can utilize the principle of kallsyms mechanism to extract the symbol table in kernel, and this table has comprised system and started the symbolic information of post-loaded module.
The disposal route of the track data file to record comprises: supplement function calling relationship transformation standard form and data upload to static function calling graph generating apparatus,
Wherein said supplementary function calling relationship comprises: according to the process number that calls and return, thread number and top-of-stack pointer, come, the calling and return and match of function, to obtain the execution time of function, the while is converted into standard format data simultaneously;
Described data upload to static function calling graph generating apparatus comprises:
The catalogue providing by FROM field and filename, copy to record respectively in the kinematic function call relation file (.dynfctrlt) of respective sources code file;
According to the TO field function in each kinematic function call relation file (.dynfctrlt) file, whether be derived from this file,
If not the external call relation file of the kinematic function that is written to respective sources code file of this file (.dynoutlst), judge whether this file is derived from this catalogue, if not be written to the external call relation file of the kinematic function of corresponding catalogue (.dynDoutlst) simultaneously;
According to the external call relation file of the kinematic function of last one deck catalogue (.dynDoutlst) file, successively return to upper level catalogue and fill in the .dynDoutlst file of upper level catalogue.
Further, described method also comprises the step that shows described function call relationship graph, and the function call relationship graph having generated and list is carried out to the step of buffer memory, and this step realizes by browser.
The concrete operational process of described method is as follows:
The first step, the installation of the software package of environmental requirement and necessity:
1, hosted environment ubuntu6412.0464 position
2, need the bag of installation:
$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
3, download the installation kit of s2e 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, the installation of the software package of environmental requirement and necessity:
1, LinuxCallMonitor plug-in unit
A, registration onTranslateBlockStart event
B, obtain and call and link order
C, call sign table obtain function name, module name
Event inclusion function name, module name, Time To Event, current process number, current thread number and current top-of-stack pointer are called in D, output
Particular content is as follows:
1.1 initialization initialize
Load SymbolResolver, FunctionMonitor:(s2e ()->getPlugin (" "));
Open first written document XXX-FuncTracer_00000.dat
Registration block translation event (onTranslateBlockStart)
1.2slotTranslateBlockStart event
By CallSignal, detect call and carry out event,
Detect that call event processes this event by callHandler
1.3callHandler
By address acquisition respective function name: the symtab_search function in SymbolResolver is realized;
Calculate the number of times of call and ret event simultaneously, if number of times exceedes 20000000, open a new written document, count zero clearing simultaneously;
The call back function that registration ret carries out, detection function return to and process return message retHandler;
Outgoing event time of origin, process number, thread number, top-of-stack pointer, module name, function name.
1.4retHandler
Calculate the number of times of call and ret, if number of times exceedes 20000000, open a new written document, count zero clearing simultaneously;
Outgoing event time of origin, process number, thread number, top-of-stack pointer.
2, SymbolResolver plug-in unit
A, obtain kernel, module symbol table
B, parsing vmlinux file elf form obtain function name and function place line number
C, the list of formation symbol: address, function name, function place line number
2.1 initialization initialize
Load system.map, vmlinux;
Call the list that read_vm () obtains function name corresponding to function entrance address, function place file and line number;
Read system.map, resolve this symbol table, function place file and the line number according to address and function name and read_vm (), obtained, completion function information, and be recorded to addrsym_tab[in function list array]; According to symbolic information record symbol table, start to finish and other address information, mainly contain: _ _ 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, the address information of their correspondences.
Read module symbol table, the functional symbol table of acquisition module, and be recorded to addrmod_tab[in array].
2.2symtab_search
According to address return function name, function place file and line number.
If given address is at addrsym_tab[] find, return to kernel(module name) and function name;
If given address is at addrmod_tab[] find, return to module name (system) and function name;
Otherwise:
From internal memory, read kallsyms_num_syms (total number of symbols); From deposit, after kallsyms_addresses, once read symbolic address judgement and need inquire address whether consistent, and recording core position; From record position, reading memory information is function name index address, if found, according to index address and symbolic address start address, reads symbolic name length, calculates the skew of looked into address, obtains function name length, and then return function name; Otherwise in the symbol table of load-on module, read 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. are that the elf form of resolving vmlinux file obtains the function of function entrance address and respective function name and function place file line number and relies on function, here not in its principle of narration and process.
The 3rd step, compiling s2e, operation s2e:
1, revise Makefile.target
2, revise s2e/qemu/Makefile.target file:
After s2eobj-y+=s2e/Plugins/ConsistencyModels.o, add two row:
s2eobj-y+=s2e/Plugins/LinuxCallMonitor.o
s2eobj-y+=s2e/Plugins/SymboleResolver.o
3, compiling s2e
4, compile the kernel of corresponding version, this project be linux-3.5.4, cpu is 32: i.e. makei386_defconfig.
In order to obtain function definition line number, thereby need to choose debug information when compiling kernel: Kernel hacking option in menuconfig, choose kernel debugging and Compile kernel with debug info.
Compiled rear arch/x86/boot/bzIamge, vmliux, System.map, uses at s2e needs in service.
5, configuration config.lua
Figure BDA0000456611910000111
Figure BDA0000456611910000121
6, create system s2e operational system dish
A, complication system:
A, establishment blank panel
Qemu-img create – f raw name.raw*G; Name mirror image name, the size of this dish of * G is how many G
B, installation system, used the not qemu with s2e
Qemu-system-i386name.raw – cdrom***.iso; * * .iso system installation file, installs from cdrom.
C, disk type conversion; S2e can only accept the disk of qcow2 type
qemu-img?convert–c?name.raw–o?qcow2new-name.qcow2
Can d, test macro normally start; Be not with s2e
Qemu-system-i386 – kernel bzImage – hdc name.raw-append "/root/sda1 "; The kernel mirror image of compiling before bzImage
B, single system busybox(www.cnblogs.com/senix/archive/2013/02/21/2921221 .html)
A, download busybox source code:
That I download is busybox-1.21.0,
Decompress(ion): tar – xf busybox-1.21.0.tar.bz2
B, compiling busybox
make?deconfig
Make menuconfig: revise Busybox Settings Build Option [*] Build Busybox as a static binary (no shared libs)
make
make?install
C, by qemu, simulate linux
(1), write initrd booting script
Figure BDA0000456611910000131
(2), write and build initrd mirror image script
Figure BDA0000456611910000132
Figure BDA0000456611910000141
(3), write booting script, test busybox
7, trace carried out in operation s2e record
Write automatic Run 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
Figure BDA0000456611910000143
Figure BDA0000456611910000151
8, trace result
The fixing name of result at present, is placed on/mnt/freenas/dyn-trace-log/b-FuncTracer_*.dat, and this result no row only shows call function or returns, each file record 20000000 instructions.Form:
calltime,pid,module,pc/call?name
9, result treatment
Think and only have a 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 algorithm:
Stack top is lined by line scan to result for empty, and call is capable function pop down corresponding this call if, and who calls this function by the previous content obtaining of current stack top; Ret pops identical to thread, process number and top-of-stack pointer stack contents if; Until finish.
B, transformation standard form: s2eout-standardout.rb.Form is:
PID:pid?TID:tid?CALL_TIME:time?RETURN_TIME:NULL?FROM:callname,/file.c:line?TO:call?name1,/file1.c:line1AT:NULL?time:function?run?time
Note: do not call at present this function somewhere.
C, by FROM field, data are stored in respectively in the kinematic function call relation file (.dynfctrlt file) of respective sources code file in respective directories: systemtapdata.rb
Data layout is constant, and the catalogue first providing by FROM field and filename copy to the result of b record respectively in the .dynfctrlt file of respective sources code file.Secondly according to the TO field function in each .dynfctrlt file, whether be derived from this file, if not the .dynoutlst file that is written to respective sources code file of this file, judge whether this file is derived from this catalogue, the no .dynDoutlst file that is written to corresponding catalogue simultaneously.The last .dynDoutlst file according to last one deck catalogue successively returns to upper level catalogue and fills in the .dynDoutlst file of upper level catalogue.
Above; be only preferred embodiment of the present invention, but protection scope of the present invention is not limited to this, any be familiar with those skilled in the art the present invention disclose technical scope in; the variation that can expect easily or replacement, within all should being encompassed in protection scope of the present invention.Therefore, protection scope of the present invention should be as the criterion with the protection domain that claim was defined.

Claims (4)

1. a method of determining kinematic function call relation based on register transfer language, is characterized in that:
Described method comprises:
In system operational process, detection function calls execution event,
If detect after call instruction, resolve the function name corresponding to function entrance address of this instruction calls, statistics instruction number of times, output function name, calls time of origin, affiliated process number, affiliated thread number, affiliated top-of-stack pointer and module No., and is saved in track data file;
If after the instruction detecting is link order, output time, affiliated process number, affiliated thread number and affiliated top-of-stack pointer are to track data file;
Described track data file is processed to the data layout that obtains preassigned, described track data file is transferred in static function call relation generating apparatus, generate the kinematic function calling graph of described function call relation.
2. the method for determining kinematic function call relation based on register transfer language according to claim 1, is characterized in that: the generation method of described track data file comprises:
By the parsing of file destination being obtained to the list of function name corresponding to function entrance address, function place file and line number;
Parse operation system kernel symbol table, obtains function entrance address and function name, searches function place file and the line number completion function information obtained, and be recorded in function list array according to address and function name;
Read module symbol table, the functional symbol table of acquisition module, and be recorded in modularity function list array;
If given address is found in function list array, return to module name and function name;
If given address is found in modularity function list array, the module name of retrieval system and function name;
If given address all can not find in described function list array and described modularity function list array, whether discriminant function exists in internal memory,
If exist in internal memory, from internal memory, read memory address, after the memory address of internal memory, once read symbolic address judgement and need inquire address whether consistent, and record core position, from record position, reading memory information is function name index address, if find, according to index address and symbolic address start address, reads symbolic name length, calculates the skew of looked into address, obtain function name length, and then return function name;
If do not exist in internal memory, in the symbol table of load-on module, read corresponding function name, from module, read memory address, by the function name of module's address acquisition module.
3. the method for determining kinematic function call relation based on register transfer language according to claim 1, it is characterized in that: the disposal route of the track data file to record comprises: supplement function calling relationship transformation standard form and data upload to static function calling graph generating apparatus
Wherein said supplementary function calling relationship comprises: according to the process number that calls and return, thread number and top-of-stack pointer, come, the calling and return and match of function, to obtain the execution time of function, the while is converted into standard format data simultaneously;
Described data upload to static function calling graph generating apparatus comprises:
The catalogue providing by FROM field and filename, copy to record respectively in the kinematic function call relation file of respective sources code file;
According to the TO field in each kinematic function call relation file file, judge whether this function call is derived from this file,
If not the external call relation file of the kinematic function that is written to corresponding source code file of this file judges whether this file is derived from this catalogue simultaneously, if not be written to the external call relation file of the kinematic function of corresponding catalogue;
According to the external call relation file of the kinematic function of last one deck catalogue, successively return to upper level catalogue and fill in the external call relation file of kinematic function of upper level catalogue.
4. the method for determining kinematic function call relation based on register transfer language according to claim 1, it is characterized in that: described method also comprises the step that shows described function call relationship graph, and the function call relationship graph having generated and list are carried out to the step of buffer memory.
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 true CN103761089A (en) 2014-04-30
CN103761089B 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)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959859A (en) * 2017-03-30 2017-07-18 北京奇虎科技有限公司 The call method and device of system call function
CN107291480A (en) * 2017-08-15 2017-10-24 中国农业银行股份有限公司 A kind of function calling method and device
CN108628744A (en) * 2018-04-28 2018-10-09 深圳市风云实业有限公司 Method for diagnosing faults, device and electronic equipment
CN108874470A (en) * 2017-05-11 2018-11-23 腾讯科技(深圳)有限公司 A kind of information processing method and server, computer storage medium
CN109426702A (en) * 2017-08-31 2019-03-05 武汉斗鱼网络科技有限公司 IOS platform file reads guard method, storage medium, electronic equipment and system
CN109614332A (en) * 2018-12-07 2019-04-12 中国航空工业集团公司洛阳电光设备研究所 A kind of hardware virtualization layered modeling method
CN110659088A (en) * 2019-09-20 2020-01-07 浙江杰芯科技有限公司 Method and system for expanding program under embedded environment
CN110737465A (en) * 2018-07-20 2020-01-31 武汉斗鱼网络科技有限公司 function call path acquisition method and related device
CN111104104A (en) * 2019-11-04 2020-05-05 珠海亿智电子科技有限公司 Method and device for visualizing function call time and statistical result and readable medium
CN111258630A (en) * 2018-12-03 2020-06-09 阿里巴巴集团控股有限公司 Function call relation detection method, device, equipment and storage medium
CN112181374A (en) * 2020-09-25 2021-01-05 广州力挚网络科技有限公司 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
CN113722128A (en) * 2021-07-12 2021-11-30 北京鲸鲮信息系统技术有限公司 Method and device for acquiring positioning information, electronic equipment and storage medium
CN113946347A (en) * 2021-09-29 2022-01-18 北京五八信息技术有限公司 Function call detection method and device, electronic equipment and readable medium
WO2022155937A1 (en) * 2021-01-23 2022-07-28 王志平 Security control method for dynamic link program
CN116909627A (en) * 2023-09-13 2023-10-20 杭州笨马网络技术有限公司 Executable program analysis method and device, electronic equipment and storage medium
CN117149499A (en) * 2023-10-30 2023-12-01 北京麟卓信息科技有限公司 Memory occupation optimization method for kernel module based on dynamic symbol table

Citations (3)

* 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
US20090293049A1 (en) * 2008-05-26 2009-11-26 Ekaterina Gorelkina Method for constructing dynamic call graph of application
CN103365774A (en) * 2013-08-22 2013-10-23 北京航空航天大学 Transient error detection method based on function call relationship

Patent Citations (3)

* 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
US20090293049A1 (en) * 2008-05-26 2009-11-26 Ekaterina Gorelkina Method for constructing dynamic call graph of application
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
VITALY CHIPOUNOV等: "S2E: A Platform for In-Vivo Multi-Path Analysis of Software Systems", 《ACM SINGARCH COMPUTER ARCHITECTURE NEWS》 *
XUELINGCHEN: "SimSight:a virtual machine based dynamic call graph generator", 《UNIVERSITY OF NEBRASKA-LINCOLN硕士学位论文》 *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959859A (en) * 2017-03-30 2017-07-18 北京奇虎科技有限公司 The call method and device of system call function
CN108874470A (en) * 2017-05-11 2018-11-23 腾讯科技(深圳)有限公司 A kind of information processing method and server, computer storage medium
CN107291480A (en) * 2017-08-15 2017-10-24 中国农业银行股份有限公司 A kind of function calling method and device
CN109426702A (en) * 2017-08-31 2019-03-05 武汉斗鱼网络科技有限公司 IOS platform file reads guard method, storage medium, electronic equipment and system
CN108628744A (en) * 2018-04-28 2018-10-09 深圳市风云实业有限公司 Method for diagnosing faults, device and electronic equipment
CN110737465B (en) * 2018-07-20 2023-09-22 深圳市大梦龙途网络科技有限公司 Method and related device for acquiring function call path
CN110737465A (en) * 2018-07-20 2020-01-31 武汉斗鱼网络科技有限公司 function call path acquisition method and related device
CN111258630B (en) * 2018-12-03 2023-05-30 斑马智行网络(香港)有限公司 Function call relation detection method, device, equipment and storage medium
CN111258630A (en) * 2018-12-03 2020-06-09 阿里巴巴集团控股有限公司 Function call relation detection method, device, equipment and storage medium
WO2020114347A1 (en) * 2018-12-03 2020-06-11 阿里巴巴集团控股有限公司 Function call relationship detection method, apparatus, device and storage medium
CN109614332B (en) * 2018-12-07 2021-11-02 中国航空工业集团公司洛阳电光设备研究所 Hardware virtualization layered modeling method
CN109614332A (en) * 2018-12-07 2019-04-12 中国航空工业集团公司洛阳电光设备研究所 A kind of hardware virtualization layered modeling method
CN110659088B (en) * 2019-09-20 2022-11-25 浙江杰芯科技有限公司 Method and system for expanding program under embedded environment
CN110659088A (en) * 2019-09-20 2020-01-07 浙江杰芯科技有限公司 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
CN112181374A (en) * 2020-09-25 2021-01-05 广州力挚网络科技有限公司 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
CN113722128A (en) * 2021-07-12 2021-11-30 北京鲸鲮信息系统技术有限公司 Method and device for acquiring positioning information, electronic equipment and storage medium
CN113946347B (en) * 2021-09-29 2022-07-08 北京五八信息技术有限公司 Function call detection method and device, electronic equipment and readable medium
CN113946347A (en) * 2021-09-29 2022-01-18 北京五八信息技术有限公司 Function call detection method and device, electronic equipment and readable medium
CN116909627A (en) * 2023-09-13 2023-10-20 杭州笨马网络技术有限公司 Executable program analysis method and device, electronic equipment and storage medium
CN116909627B (en) * 2023-09-13 2023-12-12 杭州笨马网络技术有限公司 Executable program analysis method and device, electronic equipment and storage medium
CN117149499A (en) * 2023-10-30 2023-12-01 北京麟卓信息科技有限公司 Memory occupation optimization method for kernel module based on dynamic symbol table
CN117149499B (en) * 2023-10-30 2024-01-19 北京麟卓信息科技有限公司 Memory occupation optimization method for kernel module based on dynamic symbol table

Also Published As

Publication number Publication date
CN103761089B (en) 2017-09-15

Similar Documents

Publication Publication Date Title
CN103761089A (en) Method for determining dynamic function call relation based on register transfer languages
Williams-King et al. Egalito: Layout-agnostic binary recompilation
US9075636B2 (en) Optimizing subroutine calls based on architecture level of called subroutine
Gebhart et al. Running PARSEC 2.1 on M5
US20150169294A1 (en) Management of mixed programming languages for a simulation environment
EP3491527B1 (en) Debugging tool for a jit compiler
NO304459B1 (en) Improved error code execution for translated code
US20020170034A1 (en) Method for debugging a dynamic program compiler, interpreter, or optimizer
Yadavalli et al. Raising binaries to LLVM IR with MCTOLL (WIP paper)
Mikushin et al. KernelGen--The Design and Implementation of a Next Generation Compiler Platform for Accelerating Numerical Models on GPUs
WO2013075014A1 (en) Systems and methods for debugging just-in-time static translation in an emulated system
Chen et al. CRETE: A versatile binary-level concolic testing framework
Romano et al. An empirical study of bugs in webassembly compilers
Lacamera Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems
CN102722438B (en) Kernel debugging method and equipment
US9069900B2 (en) Method for determining whether a machine code instruction of a machine code program is executed in the machine code program
Blanqui et al. Designing a CPU model: from a pseudo-formal document to fast code
Cabeza et al. The Ciao modular, standalone compiler and its generic program processing library
Baumann et al. Cudagrind: Memory-usage checking for cuda
Taylor A new elf linker
Brewer et al. Thirty Years Is Long Enough: Getting Beyond C.
Richthofer JyNI-using native CPython-extensions in Jython
Holland Toward Automatic Operating System Ports via Code Generation and Synthesis
Vaduva Learning Embedded Linux Using the Yocto Project
Vaduva et al. Linux: Embedded Development

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170915

Termination date: 20190114