CN104461890A - Qt program memory using static test method for air traffic control training system - Google Patents

Qt program memory using static test method for air traffic control training system Download PDF

Info

Publication number
CN104461890A
CN104461890A CN201410768041.5A CN201410768041A CN104461890A CN 104461890 A CN104461890 A CN 104461890A CN 201410768041 A CN201410768041 A CN 201410768041A CN 104461890 A CN104461890 A CN 104461890A
Authority
CN
China
Prior art keywords
file
information
judge
control
cpp
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
CN201410768041.5A
Other languages
Chinese (zh)
Other versions
CN104461890B (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.)
The Chinese People's Liberation Army 92232 Troops
Original Assignee
Sichuan Chuanda Zhisheng Software Co Ltd
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 Sichuan Chuanda Zhisheng Software Co Ltd filed Critical Sichuan Chuanda Zhisheng Software Co Ltd
Priority to CN201410768041.5A priority Critical patent/CN104461890B/en
Publication of CN104461890A publication Critical patent/CN104461890A/en
Application granted granted Critical
Publication of CN104461890B publication Critical patent/CN104461890B/en
Withdrawn - After Issue legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

The invention discloses a Qt program memory using static test method of an air traffic control training system. The method includes running a Qt program memory using static test program in the air traffic control training system, and adopting the directory, where codes to be detected located, as operation parameters during running; performing detection in five modules, namely traversing all .cpp and .h files of project directories and sub directories, and storing full paths into cpp_file in a string type; reading information of files line by line, analyzing new and delete statements, and acquiring establishment information of a Qt control object and delete information of all objects; storing the establishment information, acquired by analyzing, of the Qt control object into newOBJMap, and storing the delete information into deleteOBJMap; traversing each element of the newOBJMap, querying the corresponded elements of the deleteOBJMap, if the corresponded elements exist, combining the information and storing into QtObjectMap, and outputting the detection results into a log file or console. The problem of memory leakage caused by Qt specialty of the air traffic control training system is solved effectively, and the safety, reliability and practicality of the system are improved greatly.

Description

In a kind of aviation management training system exploitation, Qt program internal memory uses static check method
One, art
The present invention relates to aviation management training system, particularly use the internal memory of the aviation management system user interface program of Qt exploitation to use static check.
Two, background technology
Aviation management training system, except emulation kernel program, also needs a large number of users interface program to complete data encasement, simulated flight person's operation, controller seat etc. of undergoing training.Carry out for a long time at large-scale aviation management training system, the training activity of Complicated Flow time, higher requirement is proposed to the stable operation of man-machine interface, as can not occur RAM leakage, can not midway be abnormal exit.The source code of this method to the man-machine interface process using QT exploitation provides static check mechanism, facilitates developer to check mistake, timely corrective pitting.
Qt is the cross-platform C++ graphical user interface application program development framework developed by Trolltech in 1991, and the base class of a lot of classes all using QObject as them in Qt storehouse, the object of QObject always organizes oneself with tree structure.When we create a QObject object, can specify its parent object (being also referred to as father's control), the new object created will be added in subobject (the being also referred to as child control) list of parent object.When parent object is analysed structure, all objects in this list can be analysed structure.Moreover, when certain QObject object is analysed structure, oneself can delete by it from the list of parent object, again analyses structure oneself when being analysed structure to avoid parent object.
Above-mentionedly analyse structure function because QObject object has, when we use new operational character to create Qobject object in heap, do not need to use delete operational character analyse structure they.
So when writing Qt program, developer is easy to write out the unsuitable program of internal memory process and causes RAM leakage.
Three, summary of the invention
Object of the present invention is intended to use Qt to develop in man-machine interface, due to the Memory Leaks that Qt program singularity may be brought in the exploitation of solution aviation management training system.
The object of the invention is to reach like this: a kind of Qt program internal memory static check method in aviation management training system exploitation, it is characterized in that: in aviation management training system, run a Qt program internal memory use static scrutiny program, this program run time using the catalogue at checked code place as operational factor, catalogue can have sub-directory, after obtaining testing result, monitoring result is outputted to journal file or control desk.
This method provides checking ability for two kinds of RAM leakage situations that two kinds of Qt in Qt program are exclusive specially: Qt control object does not have father's control, this object of new in heap; Qt control object has father's control.
Detect and carry out in following 5 modules:
1), traversal engineering catalogue and sub-directory under all suffix be called .cpp and .h file, file full path footpath is saved as string type, then is stored in the cpp_file of vector type;
2) each file, in traversal cpp_file, file reading often row information by row, resolves new and delete statement, obtains the establishment information of Qt control object and the deletion information of all objects;
3), resolve the establishment information of Qt control object obtained and leave in newOBJMap, the deletion information of all objects leaves in deleteOBJMap;
4) each element, in traversal newOBJMap, searches corresponding element, if there is corresponding element, then information is merged, leave in QtObjectMap in deleteOBJMap;
5), travel through each element in QtObjectMap, obtain testing result, output to journal file or control desk.
Described 1) detection carried out in module, by Windows system provide _ findfirst () and _ findnext () function travel through All Files under certain project file, and .h and .cpp file full path name is left in the cpp_file of a Vector type, concrete steps are:
Start, the first step, control desk obtains engineering catalogue, second step, judge that findfrist obtains lower first instance handle of current directory, does is handle value-1L? be, terminate, no, 3rd step, all examples under the handle traversing directories that findnext obtains according to _ findfirst, do you judge that rreturn value is 0? be, terminate, no, enter the 4th step, do you judge that this example is sub-folder? be, current directory chained file folder name obtains new catalogue, return second step, no, enter the 5th step, do you judge that this example is .cpp or .h file? be, 6th step, the full name of .cpp and .h file is saved in the cpp_file of vector type, return the 3rd step.
Described in module 2) in the detection concrete steps of carrying out be:
Starting, does the first step, judge the end of file? terminate, no, second step, reads and often composes a piece of writing this, be kept in the line of string type, does 3rd step, judge that line is as annotation? terminate, no, enter the 4th step, does is judgement is line new or delete statement? no, entering the 5th step, does is judgement new statement? resolve the deleting object information that line obtains, document location is information more, and be kept in deleteOBJMap by the information obtained, and returns the first step; Be new statement, enter the 6th step, resolve statement and obtain the classification creating object, the 7th step, Qt spatial class is judged as according to classification?, do not terminate, be, the 8th step, to resolve the Qt control obtained, father's control, file location information is saved in newOBJMap, returns the first step.
Described in module 4) in the detection concrete steps of carrying out be:
Starting, does the first step, judge that newOBJMap terminates? terminate, no, second step, obtains the next element of newOBJMap, does the 3rd step, judge to find corresponding element in deleteOBJMap? be, these two elements are merged, are saved in QtObjectMap, terminate by the 4th step; No, newOBJMap information is saved in QtObjectMap, without the short covering of the information of deletion, is returned to the first step.
Described in module 2) the 3rd step in the detection concrete steps of carrying out, judge whether line is that annotation identifies that object is divided into two kinds: // row annotation, / * */section annotation, annotation and code are treated with a certain discrimination, arrange a bool variable result to distinguish this line code and whether annotate, Result is upgraded by the function return value of resolving code;
If row annotation, directly skips this row, and set result as commentEnd, represent that annotation terminates; If section annotation, and not in a row simultaneously appearances/* and */, then result value be commentBegin, and expression annotates beginning; If in a row simultaneously appearance/* and */, then result value is commentEnd, represent annotation terminate;
When resolving every line code, select different analytical functions according to result value, parseComment () is the function of resolving annotation, the function that parseCode () is resolving code;
In 7th step, when being judged as Qt spatial class identification object according to classification, be divided into two steps:
(1) statement creating object is identified in program;
(2) object that judgement identifies is Qt object: the class belonging to Qt control all has inheritance, and final parent object is all QWidget, for the relation of this inheritance tree, the structure of a tree is set up by reading InheritTree.ini configuration file, tree construction provides interface: a findChild (string key, POINTER*p), rreturn value is that in pointer p sensing tree, key word is the node of key, the node that key word is key is there is not in if tree, then the value of p is NULL, certain class name is passed to key as argument, can judge that this type of has been the control class of Qt, can judge that the object of object is Qt control object.
Good effect of the present invention is: efficiently solve in the exploitation of aviation management training system, when using Qt to develop man-machine interface, because of the Memory Leaks that Qt singularity may be brought, ensures the safety of system.Due to the result obtained after the inventive method detection, output to journal file or control desk, developer can pinpoint the problems in time easily, timely corrective pitting.Very real positive effect is had to the dependable with function improving aviation management training system self.
Four, accompanying drawing explanation
Fig. 1 is that Qt program internal memory of the present invention uses Static Detection software module composition diagram.
Fig. 2 is at all .cpp and the .h document flowcharts of module scans engineering.
Fig. 3 reads the inheritance tree schematic diagram that inheritTree.ini configuration file generates Qt control class.
Fig. 4 resolves each document flowchart.
Fig. 5 merges newOBJMap and deleteOBJMap process flow diagram.
Five, embodiment
The new method that the present invention carries out static check for the program using Qt to carry out Interface Development in the exploitation of aviation management training system specially and studies, solves the Memory Leaks produced in Qt program development.
Total thinking that technology realizes specially provides checking ability for two kinds of RAM leakage situations that two kinds of Qt in Qt exploitation are exclusive:
This method provides checking ability for two kinds of RAM leakage situations that two kinds of Qt in Qt exploitation are exclusive specially:
If Qt control object does not have father's control, if in heap this object of new, so must to encode and to realize deleting, otherwise have RAM leakage;
Qt control object has father's control, now without the need to this Qt control of the manual delete of programmer, because father's control is when analysing structure, automatically the control in the child control list of structure oneself can be analysed, this is the automatic memory mechanism that Qt provides, and programmer may write delete code by mistake, causes RAM leakage.
In addition also have other to belong to the middle RAM leakage of C Plus Plus use and the situation of redundancy delete, the method does not relate to the detection of these situations.
This method is made up of several module, as shown in Figure 1.
In module 1, by Windows system provide _ findfirst () and _ findnext () function traversal engineering catalogue and sub-directory under all .cpp and .h files, file full path footpath is saved as string type, then is stored in the cpp_file of vector type.
Concrete steps see accompanying drawing 2:
Start, the first step, control desk obtains engineering catalogue, second step, judge that findfrist obtains lower first instance handle of current directory, does is handle value-1L? be, terminate, no, 3rd step, , all examples under the handle traversing directories that findnext obtains according to _ findfirst, do you judge that rreturn value is 0? be, terminate, no, enter the 4th step, do you judge that this example is sub-folder? be, current directory chained file folder name obtains new catalogue, return second step, no, enter the 5th step, do you judge that this example is .cpp or .h file? be, the full name of .cpp and .h file is saved in the cpp_file of vector type, return the 3rd step.
In the block 2, each file in traversal cpp_file, file reading often row information by row, resolves new and delete statement, obtains the establishment information of Qt control object and the deletion information of all objects.
During new and delete statement in resolution file, for a certain file, obtain the every line code in file with getLine ().
Resolving is shown in Fig. 4, and concrete steps are:
Starting, does the first step, judge the end of file? terminate, no, second step, reads and often composes a piece of writing this, be kept in the line of string type, does 3rd step, judge that line is as annotation? terminate, no, enter the 4th step, does is judgement is line new or delete statement? no, entering the 5th step, does is judgement new statement? resolve the deleting object information that line obtains, document location is information more, and be kept in deleteOBJMap by the information obtained, and returns the first step; Be new statement, enter the 6th step, resolve statement and obtain the classification creating object, the 7th step, Qt spatial class is judged as according to classification?, do not terminate, be, the 8th step, to resolve the Qt control obtained, father's control, file location information is saved in newOBJMap, returns the first step.
For identification comment section and non-comment section:
Annotation points two kinds // row annotation ,/* */section annotation, annotation and code will be treated with a certain discrimination, arrange a bool variable result and distinguish this line code and whether annotate.Result is upgraded by the function return value of resolving code.
If row annotation, directly skips this row, and set result as commentEnd (representing that annotation terminates).If section annotation, and not in a row simultaneously appearances/* and */, then result value be commentBegin (expression annotates beginning).If in a row simultaneously appearance/* and */, then result value is commentEnd (represents annotation terminate).
When resolving every line code, select different analytical function parseComment () (resolving the function of annotation) according to result value, parseCode () (function of resolving code).
Two steps are divided into for identification QT control object:
(1) statement creating object is identified in program
By the understanding to Qt program, creating Qt control object is generally this structure.
Such as:
QPushButon m_button=new QPushButton(Parent);
This line code has significant word to be exactly new and '=' most, and should be independently this key word of new, get rid of this situation of * * * new***.
First, the information that will obtain from this line code is: object name (m_button), class name (QPushButton), parent object (parent).
Thinking passes through "=", " new ", " () " obtain the begin (index of first character in full line string) of each identifier, end (index of last character in full line string).Then each indications can be obtained by begin and end.
In C++, string class provides a lot of interface and can directly use.Substr (begin, len) be used for intercept substring, find (" arg ") be used for find index value, these two functions with the use of completing above-mentioned functions.
(2) object that judgement identifies is Qt control object
Considering and will identify all Qt control object, is a numerous and diverse job, so just looked for some conventional Qt control object, for identification.But this is not fixing, if having if required new, can move InheritTree.ini configuration file expert and add new object.
Class belonging to Qt control all has inheritance, and final parent object is all QWidget, for the relation of this inheritance tree, establishes the structure of a tree, and the foundation of tree construction is set up by reading InheritTree.ini configuration file.
InheritTree.ini file structure example:
[height of tree]
depthNum=n
[height 0]
Number of network nodes under NodeNum=1//present level
QWidget=NULL//equal sign left side is spatial class, and the right has been parent
[height 1]
...
[height n-1]
...
Tree construction provides an interface, findChild (std::string key, TreeNodePointer*p), suction parameter string key, rreturn value is TreeNodePointer*p, and rreturn value is that in pointer p sensing tree, key word is the node of key, there is not the node that key word is key in if tree, then the value of p is NULL.The node that key word is key whether is there is in this structure energy decision tree.Therefore, certain class name is passed to key as argument, just can judge that this type of has been the control class of Qt, also just can judge that the object of object has been QT control object.Here, TreeNodePointer is data structure
TreeNodePointer is the pointer that sensing one describes tree structures node, and this node content comprises: node content key, the child list child_array of this node, child node number child_num, the father node parent of node.
Read inheritTree.ini configuration file and generate the inheritance tree of Qt control class see Fig. 3.
In module 3, the establishment information of resolving the Qt control object obtained leaves in newOBJMap, and the deletion information of all objects leaves in deleteOBJMap.
The identifying processing mode of deleting object statement is identical with identification in the block 2, repeats no more.But herein because class name cannot be obtained, the object of whether Qt control class cannot be judged, so all objects are all kept in deleteOBJMap cited below.
In deleteOBJMap and newOBJMap, add the information of deleting and creating object, the information in new and delete statement previous step identified is kept in following two structures:
The object of these two structure types is placed on newOBJMap respectively, in deleteOBJMap.
In module 4, each element in traversal newOBJMap, searches corresponding element in deleteOBJMap, if there is corresponding element, then information is merged, leaves in QtObjectMap;
Merge newOBJMap and deleteOBJMap, flow process is see accompanying drawing 5.
Concrete steps are: start, does the first step, judge that newOBJMap terminates? terminate, no, second step, obtains the next element of newOBJMap, the 3rd step, do you judge to find corresponding element in deleteOBJMap? these two elements are merged, is saved in QtObjectMap, terminate.No, newOBJMap information is saved in QtObjectMap, without the short covering of the information of deletion, is returned to the first step.
In time in information combination in delteOBJMap and newOBJMap to QTObjectMap, is passed through loop iteration, find each Qt control object in newOBJMap, see in delteOBJMap whether have corresponding information, if had, just the information integration in these two structure objects in following structure:
This structure object is inserted in QTObjectMap.
In module 5, each element in traversal QtObjectMap, obtains testing result, outputs to journal file or control desk.According to the information output detections result in QTObjectMap,
Each object QTOBJ in QTObjectMap
Finally output results in control desk and journal file.
Last result outputs to after in control desk and journal file, is conducive to developer and modifies:
To check E: the All Files under // aviation management training catalogue, output example is as follows:
Doubtful RAM leakage: objectName (control object name) E: // aviation management training //a.cpp (creating the full catalogue of obj ect file) 600 (line numbers);
Doubtful manual deletion error: objectName (control name) parentName (father's control name) E: // aviation management training //a.cpp (creating the full catalogue of obj ect file) 600 (line number) E: // aviation management training //a.cpp (the full catalogue of deleting object file) (line number).

Claims (6)

1. the static check method that in an aviation management training system exploitation, Qt program internal memory uses, it is characterized in that: in aviation management training system, run a QT program internal memory use static scrutiny program, this program run time using the catalogue at checked code place as operational factor, this catalogue can contain sub-directory, after obtaining testing result, monitoring result is outputted to journal file or control desk;
This method provides checking ability for two kinds of RAM leakage situations that two kinds of Qt in Qt program are exclusive specially: Qt control object does not have father's control, this object of new in heap; Qt control object has father's control;
Detect and carry out in following 5 modules:
1), traversal engineering catalogue and sub-directory under all suffix be called .cpp and .h file, file full path footpath is saved as string type, then is stored in the cpp_file of vector type;
2) each file, in traversal cpp_file, file reading often row information by row, resolves new and delete statement, obtains the establishment information of Qt control object and the deletion information of all objects;
3), resolve the establishment information of Qt object obtained and leave in newOBJMap, the deletion information of all objects leaves in deleteOBJMap;
4) each element, in traversal newOBJMap, searches corresponding element, if there is corresponding element, then information is merged, leave in QtObjectMap in deleteOBJMap;
5), travel through each element in QtObjectMap, obtain testing result, output to journal file or control desk.
2. in aviation management training system exploitation as claimed in claim 1, Qt program internal memory uses static check method, it is characterized in that: described 1) detection carried out in module, by Windows system provide _ findfirst () and _ findnext () function travel through All Files under certain project file, and .h and .cpp file full path name is left in a Vector type cpp_file, concrete steps are:
Start, the first step, control desk obtains engineering catalogue, second step, judge that findfrist obtains lower first instance handle of current directory, does is handle value-1L? be, terminate, no, 3rd step, all examples under the handle traversing directories that findnext obtains according to _ findfirst, do you judge that rreturn value is 0? be, terminate, no, enter the 4th step, do you judge that this example is sub-folder? be, current directory chained file folder name obtains new catalogue, return second step, no, enter the 5th step, do you judge that this example is .cpp or .h file? be, 6th step, the full name of .cpp and .h file is saved in the cpp_file of vector type, return the 3rd step.
3. in aviation management training system exploitation as claimed in claim 1, Qt program internal memory uses static check method, it is characterized in that:
Described in module 2) in the detection concrete steps of carrying out be:
Starting, does the first step, judge the end of file? terminate, no, second step, reads and often composes a piece of writing this, be kept in the line of string type, does 3rd step, judge that line is as annotation? terminate, no, enter the 4th step, does is judgement is line new or delete statement? no, entering the 5th step, does is judgement new statement? resolve the deleting object information that line obtains, document location is information more, and be kept in deleteOBJMap by the information obtained, and returns the first step; Be new statement, enter the 6th step, resolve statement and obtain the classification creating object, the 7th step, Qt spatial class is judged as according to classification?, do not terminate, be, the 8th step, to resolve the Qt control obtained, father's control, file location information is saved in newOBJMap, returns the first step.
4. in aviation management training system exploitation as claimed in claim 1, Qt program internal memory uses static check method, it is characterized in that: described in module 4) in the detection concrete steps of carrying out be:
Starting, does the first step, judge that newOBJMap terminates? terminate, no, second step, obtains the next element of newOBJMap, does the 3rd step, judge to find corresponding element in deleteOBJMap? be, these two elements are merged, are saved in QtObjectMap, terminate by the 4th step; No, newOBJMap information is saved in QtObjectMap, without the short covering of the information of deletion, is returned to the first step.
5. in aviation management training system exploitation as claimed in claim 3, Qt program internal memory uses static check method, it is characterized in that: described in module 2) the 3rd step in the detection concrete steps of carrying out, judge whether line is that annotation identifies that object is divided into two kinds: // row annotation, / * */section annotation, annotation and code are treated with a certain discrimination, arrange a bool variable result to distinguish this line code and whether annotate, Result is upgraded by the function return value of resolving code;
If row annotation, directly skips this row, and set result as commentEnd, represent that annotation terminates; If section annotation, and not in a row simultaneously appearances/* and */, then result value be commentBegin, and expression annotates beginning; If in a row simultaneously appearance/* and */, then result value is commentEnd, represent annotation terminate;
When resolving every line code, select different analytical functions according to result value, parseComment () is the function of resolving annotation, the function that parseCode () is resolving code;
Described in module 2) in detection concrete steps the 7th step of carrying out, when being judged as Qt spatial class identification object according to classification, be divided into two steps:
(1) statement creating object is identified in program;
(2) object that judgement identifies is Qt object: the class belonging to Qt control all has inheritance, and final parent object is all QWidget, for the relation of this inheritance tree, the structure of a tree is set up by reading InheritTree.ini configuration file, tree construction provides interface a: findChild, findChild rreturn value is that in pointer p sensing tree, key word is the node of key, the node that key word is key is there is not in if tree, then the value of p is NULL, certain class name is passed to key as argument, can judge that this type of has been the control class of Qt, can judge that the object of object is Qt control object.
6. in aviation management training system exploitation as claimed in claim 5, Qt program internal memory uses static check method, it is characterized in that: the interface that described tree construction provides is findChild, suction parameter string key, rreturn value is TreeNodePointer*p, here, TreeNodePointer is data structure
TreeNodePointer is the pointer that sensing one describes tree structures node, and this node content comprises: node content key, the child list child_array of this node, child node number child_num, the father node parent of node.
CN201410768041.5A 2014-12-12 2014-12-12 Qt program memory using static test method for air traffic control training system Withdrawn - After Issue CN104461890B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410768041.5A CN104461890B (en) 2014-12-12 2014-12-12 Qt program memory using static test method for air traffic control training system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410768041.5A CN104461890B (en) 2014-12-12 2014-12-12 Qt program memory using static test method for air traffic control training system

Publications (2)

Publication Number Publication Date
CN104461890A true CN104461890A (en) 2015-03-25
CN104461890B CN104461890B (en) 2017-05-17

Family

ID=52907979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410768041.5A Withdrawn - After Issue CN104461890B (en) 2014-12-12 2014-12-12 Qt program memory using static test method for air traffic control training system

Country Status (1)

Country Link
CN (1) CN104461890B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117410A (en) * 2015-07-28 2015-12-02 阿里巴巴集团控股有限公司 Application object creation method and apparatus
CN107632929A (en) * 2017-08-21 2018-01-26 北京京东尚科信息技术有限公司 A kind of method and apparatus for detecting memory overflow
CN110865899A (en) * 2019-10-18 2020-03-06 北京华捷艾米科技有限公司 LLVM-based static detection method and system for memory leakage
CN111078540A (en) * 2019-11-29 2020-04-28 四川九洲空管科技有限责任公司 QT-development-based universal aviation flight service software memory anomaly detection and positioning method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826259A (en) * 2009-11-30 2010-09-08 四川川大智胜软件股份有限公司 Method for building embedded information management system of parking lot
CN102214102A (en) * 2011-07-06 2011-10-12 上海智翔信息科技股份有限公司 System for transplanting C++ graphical user interface library (QT) to advanced RISC machine (ARM)
US20140189438A1 (en) * 2012-12-31 2014-07-03 Bmc Software, Inc. Memory leak detection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826259A (en) * 2009-11-30 2010-09-08 四川川大智胜软件股份有限公司 Method for building embedded information management system of parking lot
CN102214102A (en) * 2011-07-06 2011-10-12 上海智翔信息科技股份有限公司 System for transplanting C++ graphical user interface library (QT) to advanced RISC machine (ARM)
US20140189438A1 (en) * 2012-12-31 2014-07-03 Bmc Software, Inc. Memory leak detection

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117410A (en) * 2015-07-28 2015-12-02 阿里巴巴集团控股有限公司 Application object creation method and apparatus
CN107632929A (en) * 2017-08-21 2018-01-26 北京京东尚科信息技术有限公司 A kind of method and apparatus for detecting memory overflow
CN110865899A (en) * 2019-10-18 2020-03-06 北京华捷艾米科技有限公司 LLVM-based static detection method and system for memory leakage
CN110865899B (en) * 2019-10-18 2023-09-05 北京华捷艾米科技有限公司 Static detection method and system for memory leakage based on LLVM
CN111078540A (en) * 2019-11-29 2020-04-28 四川九洲空管科技有限责任公司 QT-development-based universal aviation flight service software memory anomaly detection and positioning method
CN111078540B (en) * 2019-11-29 2023-03-07 四川九洲空管科技有限责任公司 QT-development-based universal aviation flight service software memory anomaly detection and positioning method

Also Published As

Publication number Publication date
CN104461890B (en) 2017-05-17

Similar Documents

Publication Publication Date Title
Silva et al. Refdiff 2.0: A multi-language refactoring detection tool
CN109426722B (en) SQL injection defect detection method, system, equipment and storage medium
Fazzini et al. Automated cross-platform inconsistency detection for mobile apps
Lo et al. SMArTIC: Towards building an accurate, robust and scalable specification miner
AU2010350247B2 (en) Code inspection executing system for performing a code inspection of ABAP source codes
CN104899147B (en) A kind of code Static Analysis Method towards safety inspection
Menzies et al. Verification and validation and artificial intelligence
CN102567200A (en) Parallelization security hole detecting method based on function call graph
CN102662825B (en) Method for detecting memory leakage of heap operational program
Vos et al. testar–scriptless testing through graphical user interface
CN104461890A (en) Qt program memory using static test method for air traffic control training system
CN106371997A (en) Code checking method and device
CN104615544A (en) Problem-oriented GUI software correlation function analysis method and device
Ren et al. Making smart contract development more secure and easier
Emam et al. Inferring extended probabilistic finite-state automaton models from software executions
CN103914379A (en) Automatic fault injection and fault detecting method and system
Louis et al. Deep learning to detect redundant method comments
Solanki et al. Comparative study of software clone detection techniques
Chen et al. An empirical study on the effect of testing on code quality using topic models: A case study on software development systems
Aghdasifam et al. A new metaheuristic-based hierarchical clustering algorithm for software modularization
CN109816038A (en) A kind of Internet of Things firmware program classification method and its device
Takeda et al. Applying change impact analysis test to migration test case extraction based on IDAU and graph analysis techniques
Herzig et al. Classifying code changes and predicting defects using changegenealogies
Corley et al. Modeling the ownership of source code topics
Kashima et al. Comparison of backward slicing techniques for java

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NO. 92232 TROOPS OF PLA

Effective date: 20150818

C41 Transfer of patent application or patent right or utility model
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Hu Shu

Inventor after: Wang Yuqing

Inventor after: Tang Qilin

Inventor after: Zhou Weiping

Inventor after: Zou Wei

Inventor after: Zhang Jinwu

Inventor after: Zhang Pixu

Inventor after: Zhou Xuan

Inventor before: Hu Shu

Inventor before: Wang Yuqing

Inventor before: Tang Qilin

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: HU SHU WANG YUQING TANG QILIN TO: HU SHU WANG YUQING TANG QILIN ZHOU WEIPING ZOU WEI ZHANG JINWU ZHANG PIXU ZHOU XUAN

TA01 Transfer of patent application right

Effective date of registration: 20150818

Address after: 610045 Sichuan city of Chengdu province Wuhou District Vuko East Road No. seven

Applicant after: Chuandazhisheng Software Co., Ltd., Sichuan

Applicant after: The Chinese People's Liberation Army 92232 Troops

Address before: 610045 Sichuan city of Chengdu province Wuhou District Vuko East Road No. seven

Applicant before: Chuandazhisheng Software Co., Ltd., Sichuan

GR01 Patent grant
GR01 Patent grant
AV01 Patent right actively abandoned
AV01 Patent right actively abandoned
AV01 Patent right actively abandoned

Granted publication date: 20170517

Effective date of abandoning: 20211109

AV01 Patent right actively abandoned

Granted publication date: 20170517

Effective date of abandoning: 20211109