CN105229617A - For the chart of navigation application code - Google Patents

For the chart of navigation application code Download PDF

Info

Publication number
CN105229617A
CN105229617A CN201480029533.0A CN201480029533A CN105229617A CN 105229617 A CN105229617 A CN 105229617A CN 201480029533 A CN201480029533 A CN 201480029533A CN 105229617 A CN105229617 A CN 105229617A
Authority
CN
China
Prior art keywords
code element
chart
node
methods
code
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.)
Pending
Application number
CN201480029533.0A
Other languages
Chinese (zh)
Inventor
A·古纳雷斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Concurix Corp
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
Priority claimed from US13/899,500 external-priority patent/US8990777B2/en
Priority claimed from US13/899,503 external-priority patent/US20140189650A1/en
Priority claimed from US13/899,504 external-priority patent/US9734040B2/en
Priority claimed from US13/899,507 external-priority patent/US20140189652A1/en
Application filed by Concurix Corp filed Critical Concurix Corp
Publication of CN105229617A publication Critical patent/CN105229617A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Abstract

Code element is selected the chart can applied from description one.Code element can show for node by chart, and limit represents the connection between node.Connection can be message, code flow relation or other relations transmitted between code element.When selecting a code element or one group of code element from chart, corresponding source code can be shown.Code can be displayed on code editor or can be used to check, edit and handle in other mechanism of code.

Description

For the chart of navigation application code
The cross reference of related application
This application claims the U.S. Patent Application Serial Number 13/899 being entitled as " InteractiveGraphforNavigatingApplicationCode " (interactive table for navigation application code) submitted on May 21st, 2013,500, the U.S. Patent Application Serial Number 13/899 being entitled as " SettingBreakpointUsinganInteractiveGraphRepresentinganAp plication " (use and represent that the interactive table of application is to arrange breakpoint) of submission on May 21st, 2013,503, the U.S. Patent Application Serial Number 13/899 being entitled as " AnimatedHighlightsinaGraphRepresentinganApplication " (highlighting of the animation in the chart representing application) of submission on May 21st, 2013,504, and the U.S. Patent Application Serial Number 13/899 being entitled as " FilteringandTransformingaGraphRepresentinganApplication " (filter and convert the chart representing application) that on May 21st, 2013 submits to, the rights and interests of 507 and right of priority, these applications are all clearly incorporated into this by quoting full content that they instruct and disclose.
Background
Programmer usually checks and Test Application in many different ways between development stage.Programmer can run this application, implement to load, perform protos test suite PROTOS or perform other operations to application in various use scenes, how to perform to understand this application and to verify that this application to operate like that by designed.
When programmer identifies a certain problem area, the code that programmer can locate this problem area and improvement or change in this region in source code.Then such improvement can be tested to verify that this problem area is repaired again.
Summary of the invention
Code element is selected the chart can applied from description one.Code element can show for node by chart, and limit represents the connection between node.Connection can be message, code flow relation or other relations transmitted between code element.When selecting a code element or one group of code element from chart, corresponding source code can be shown.Code can be displayed on code editor or can be used to check, edit and handle in other mechanism of code.
By selecting the node on the chart of the relation described between code element and code element, breakpoint is set.Draw chart by tracking data, and chart can react the mutual of observing between code element and code element of observing.In many cases, chart can comprise performance indicator.Breakpoint can especially comprise the condition depending on the tolerance relevant with performance.In certain embodiments, node can react the individual instances of particular code element, and node can be rendered as the same code element that can be utilized by different threads by other embodiments.Breakpoint can comprise can the parameter different because of thread or condition.
To application analysis and limber up period between, the relation in application between code element can be selected and be used.Interactive table can relation between reveal codes element and code element, and user perhaps can select a certain relation from chart, so the details of this relation can be shown.This details can comprise across the data of this relation transmission, the agreement used and communication frequency, stand-by period, queue performance and other performance metrics.Selected by relation, user perhaps can arrange breakpoint, increase or reduce and follows the tracks of option or perform other actions.
Highlighted object can travel through the chart of the relation between code element and those code elements representing application.By animation, highlighted object can be represented how object is processed in the application.Chart can represent the relation between code element and code element, highlights to determine that object is generated by code element and the flowing that strides across relation by following the tracks of application.User can control highlighted chart to be play by the sequence highlighted on chart by one group of play control.Play control can comprise time-out, refunds, advances, F.F. and other controls.Control also can comprise stepping control, and stepping control can the little time increment of single-step debug.
Represent that the chart of the relation between code element and code element can make some part of the incompatible merging of element set or folding chart.Filtrator can operate, by different states, chart is shown between chart data and renderer.Chart available interactive user interface realizes, and can be selected the grouping on node, limit, node or limit by interactive user interface user, then apply filters or other conversion.When user selects combination one group of code element, the element of combination can be shown as individual element.In some cases, contrast with single element (singletonelement), this individual element can have vision difference to illustrate that this element is folding or composite component.
There is provided this general introduction to introduce the selected works of concept in simplified form, described concept is further described in the following detailed description.This general introduction is not intended to the key feature or the essential feature that identify claimed subject, is not intended to the scope for limiting claimed subject yet.
Accompanying drawing is sketched
In the accompanying drawings:
Fig. 1 is that the diagram of the embodiment of the user interface that the interactive table with the relation represented between code element and code element is shown illustrates.
Fig. 2 is that the diagram of the embodiment of the equipment that the interactive table that can show the just tracked application of expression is shown illustrates.
Fig. 3 is that the diagram of the embodiment that the network environment with the visualization system system having dispersed components thereof is shown illustrates.
Fig. 4 illustrates for showing chart and illustrating with the process flow diagram of the embodiment of the method shown in response to the source code of selecting alternately with chart.
Fig. 5 illustrates that the diagram of the embodiment with the example user interface that breakpoint creates illustrates.
Fig. 6 illustrates that the diagram of the embodiment with the example user interface that limit is selected illustrates.
Fig. 7 illustrates for arranging and using the process flow diagram of the embodiment of the method for breakpoint to illustrate.
Fig. 8 A, 8B and 8C are that the diagram of the example embodiment that the progress highlighted be placed on the chart representing a certain application is shown illustrates.
Fig. 9 illustrates for highlighting a chart to follow the tracks of the process flow diagram illustration of a certain object through the embodiment of the method for the traversal of chart.
Figure 10 is that the diagram of the embodiment that the distributed system with interactive table and filtrator is shown illustrates.
Figure 11 A and 11B is that the diagram of the example embodiment that the sequence applying a filter to chart is shown illustrates.
Figure 12 be illustrate for create filtrator and apply a filter to the embodiment of the method for chart process flow diagram illustrate.
Describe in detail
By interactive table navigation sources code
Illustrate that the chart of the relation between code element and code element can be used for selecting and reveal codes element.Chart can represent both the Static and dynamic relations between code element, another performance metric collected when following the tracks of code element term of execution of being included in.
Interactive table can have user can be allowed to select a certain node of chart or effective input field on limit, and its interior joint can represent a certain code element, and limit can represent the relation between code element.Can after chart element in selection, corresponding source code or other expressions of this code element can be shown.
In some cases, code element can be displayed in code editor, and user perhaps can edit this code and perform various function to this code, comprises compiling and performs this code.Selected code element can with to highlight or other visual cues are shown, and makes programmer easily can identify exact code capable (a line or multirow) represented by a certain node selected from chart.
The selection of opposite side can identify two code elements, because every bar limit can link this two code elements.In this case, some embodiments can show this two code elements.Such code element can use different display techniques to be all simultaneously displayed in user interface.
Other embodiments can show one of code element connect by side chain.Some such embodiments can present the user interface that user can be allowed to select between two code elements.In such example, when relation has directivity concept, the user interface that inquiry user selects upstream element or downstream element can be presented.In another example, a user interface only can illustrate the individual code line be associated with each node, then allows user to select code line investigate further and show.
Chart can comprise the information from drawing the Static and dynamic analysis of application.Static analysis can authentication code block and some relation, the call-tree such as between code element or Row control relation.Performance analysis by code analysis in the instrumentation environment (instrumentedenvironment) come authentication code block with detection of code block and code the term of execution how mutual.Message, the function call of making from a code element to another code element or other relations that some embodiments can be transmitted between authentication code element.
Chart can show summary about the execution of code or other observationss.Such as, tracker can collect the data about each code element, any performance metric in the amount of garbage reclamation of the processor such as consumed or the amount of memory resource, execution, the quantity of cache-miss or many different performances tolerance.
Chart can show certain expression of performance metric.Such as, a certain code element maybe can be able to indicate other changes of certain performance metric to show by symbol, size, color.In a simple examples, the large I showing the symbol of a certain node indicates the processing time that this element consumes.In another example, the width on limit can represent the quantity of the amount of the data transmitted between code element or the message of transmission.
By the breakpoint that interactive table is arranged.
Interactive table can serve as the input tool selecting the code element that can arrange breakpoint from it.The object relevant with selected code element can be shown, and can from the one or more Object Creation breakpoints object.In some cases, breakpoint can be applied to selected code element or a certain object makes breakpoint can be satisfied with a different code element.
Interactive table can relation between reveal codes element and code element, and visually can illustrate the operation of application.Chart can, by real time or be close to and upgrade in real time, and can use various visual effect that the tolerance relevant with performance is shown.User can, with chart alternately to identify the interested particular code element of possibility, then select described code element to create breakpoint.
Together with performance can be presented at selected code element with other tracker data.Such data can comprise tolerance, statistics and other information relevant with this particular code element.Such tolerance can be the consumption statistics of such as storer, processor, network or other resources, comparing between selected code element with other code elements, or other data.In some cases, tolerance can comprise the parameter that can be bonded in breakpoint.
Because chart can comprise the data relevant with performance, user can observe operation and the performance of application before selecting to insert breakpoint wherein.The combination of the relational structure of performance data and application can greatly help user to be the significant position of Cut Selection.Relational structure can help user to understand application flow, and mark may not apparent dependence and bottleneck from source code.Performance data can identify and may to surpass the expectation or lower than those application elements expectedly performed.The comparable additive method for identifying breakpoint location of combination of relational structure and performance data is effectively with much meaningful.
Choice relation is as input
Relation between code element can be selected from interactive table code element being expressed as node and the relation between code element being expressed as limit.Relation can represent many dissimilar relations, from function call to shared storage object.Once be selected, relation just can be used to arrange breakpoint, monitor across this relation communication, increase or reduce tracking activity or other operations.
Relation can be the relation of message delivery type, and some of them can only delivery confirmation, and other can comprise data object, code element or other information.Some messaging relationship can be explicit message, and available queue and other messenger component manage.Other messaging relationship can be implicit messages, and wherein program flow, data or other elements can be passed to another code element from a code element.
Relation can be shared storage relation, and it can represent the memory object that can be read by another code element by a code element write.When first code element can obtain, to the write lock of memory object, second code element can be placed in waiting status until when write lock can be released, can identify such relation.
The information relevant with relation can be used to arrange breakpoint.Such as, breakpoint can be set to the message across selected relation transmission, such as, when message exceedes a certain size, frequency or comprises some parameter or parameter value.
Object is highlighted in the chart of animation describing the application performed.
Can apply in the animation chart be just performed in description and highlight object.Chart can comprise the node representing code element and the limit representing the relation between code element.Highlighted object can represent data element, request, process or can traverse to other objects of another code element from a code element.
Highlighted object visually can be described some assembly and can how to be in progress in the application.Highlight and can visually code element be linked together, make application programmer can understand the flow process of the application about a certain special object.
In a use scenes, the application that can process web request can be visualized.The request of importing into can be identified and highlight, and can by some different code element operation.Highlighted visual element (such as bright circle) can be placed on expression and receive on the node of the code element of this request by the chart describing this application.When this request is by the process of suceeding generation data code, chart can illustrate that this highlighted bright circle traversal will by the various relations of other code element process.This request can by multiple code element process, and this highlighted bright circle can successively be depicted in each in these code elements.
Highlighted object can represent individual data element, one group of data element or can be delivered to any other object of another code element from a code element.In some cases, highlighted object can be can be used as readjustment or the executable code element that is passed of other mechanism.
Readjustment can be can be used as the executable code that argument (argument) is delivered to another code, and this another code can be desirably in and perform this argument at one's leisure.Can perform when synchronous readjustment and directly call, and asynchronism callback can be performed afterwards sometime.Many language support readjustments, comprise C, C++, Pascal, JavaScript, Lua, Python, Perl, PHP, Ruby, C#, VisualBasic, Smalltalk and other language.In some cases, readjustment can be defined by explicitly and realize, and in other cases, the structure (construct) that can show as readjustment can be simulated or have to readjustment.Useful object-oriented language, functional language, imperative language or other language form realize readjustment.
The animation of chart can comprise can suspend, refund, play, the play control of code element sequence that F.F. and a certain object of single-step debug may run into.In numerous applications, the speed that perhaps can understand than people of real-time execution speed is faster.Human user perhaps can slow down or the single-step debug sequence of operation, makes user can understand application better and how to process highlighted object.
Combination and developed element on the chart representing application
Represent that the chart of the relation between the code element of application and code element can be filtered to combine a group element this group element to be expressed as the individual element on chart.Chart can have interactive elements, utilizes interactive elements user can select node to operate, and can apply filters by interactive elements.
Filtrator can operate according to conversion, conversion or other operations, to prepare chart data before rendering.Filtrator can comprise and multiple node is merged into individual node, individual node is launched into multiple node, highlights to chart element application or other visual cues, to add performance data modifier and other conversion and operation to chart element.
Filtrator can make many different operatings can be applied to tracker data.In many cases, data stream can be transferred into render engine, and filtrator can be employed before rendering.Such situation is transmitted and is stored with can allowing tracker data integrity, allows the custom views that data are shown to user simultaneously.
Term " filtration " as used in the specification and claims refers to before display to any conversion of data.The removable data of filtrator, concatenated data, summary data or perform other operation.In some cases, filtrator can by a data stream and another data stream combined.Filtrator also can analyze data in every way, and highlights or other labels to market demand, makes render engine can play up chart by different characteristic.Term " filtration " is intended to comprise the conversion of any type that can be applied to data, and is not intended to limit the conversion that some data can be excluded from data stream.
Chart can have interactive elements, can be employed by the various filtrator of interactive elements.Interactive elements can comprise select filtrator to be applied to node, limit or node and limit group.In some cases, legend or other interactive elements can serve as the mechanism of the node group that identified filter can be applied to.
When a filtrator is employed, some embodiment can apply different highlighting or other vision differences.Highlighting like this can indicate filtrator or conversion has been applied to highlighted element.
Run through this instructions and claims, term " explorer " (profiler), " tracker " and " testing mechanism " (instrumentation) are used interchangeably.These terms refer to can apply be performed time image data any mechanism.In classics definition, " testing mechanism " can refer to can be inserted into executable code and thus change generation method stub (stub), hook (hook) or other data collecting mechanisms of this executable code, and " explorer " or " tracker " can refer to the data collecting mechanism of immutable executable code classically.The use of any one in these terms and derivative thereof all can be contained or imply each other.Such as, use the data acquisition of " tracker " that the non-contact data collection in the classical meaning of " tracker " can be used and can the data acquisition of classical meaning of reformed " testing mechanism " perform with wherein executable code.Similarly, the data gathered by " testing mechanism " can comprise the data acquisition using non-contact data collection mechanism.
In addition, the data gathered by " detecting ", " tracking " and " testing mechanism " can comprise the data of any type that can be collected, comprise the data relevant with performance in such as processing time, handling capacity, performance counter etc. and so on.The data collected can comprise function name, the parameter of transmission, the message of memory object name and content, transmission, message content, register setting, content of registers, error flags, interruption or any other parameter relevant with just tracked application or other collectable data.
Run through this instructions and claims, term " execution environment " can be used to the support software of any type referred to for performing application.One example of execution environment is operating system.In some illustrate, " execution environment " can be illustrated as separating with operating system.This may be to exemplify as applying the virtual machine providing each support function, such as process virtual machine.In other embodiments, virtual machine can be the system virtual machine that can comprise its oneself domestic os and can simulate whole computer system.Run through this instructions and claims, term " execution environment " comprises operating system and can have or can not have the other system of " virtual machine " or other support softwares that can easily identify.
Run through this instructions, run through the description to accompanying drawing, identical Reference numeral represents identical element.
In the present specification and claims, multiple processor is comprised to quoting of " processor ".In some cases, in fact the process that can be performed by " processor " can be performed by the multiple processors on same equipment or on distinct device.Be in the object of this instructions and claims, multiple processors that should comprise and may be positioned on same equipment or on distinct device are quoted to any of " processor ", unless clearly specified in addition.
When element is called as " being connected " or " being coupled ", these elements can be connected directly or be coupled, or also can there is one or more neutral element.On the contrary, when element be called as be " directly connected " or " direct-coupling " time, there is not neutral element.
This theme can be embodied as equipment, system, method and/or computer program.Therefore, partly or entirely can being embodied by hardware and/or software (comprising firmware, resident software, microcode, state machine, gate array etc.) of this theme.In addition, this theme can take computing machine to use or the form of computer program on computer-readable recording medium, and described computing machine can use or computing machine can use by computer-readable recording medium or computer readable program code is specialized and used for instruction execution system or combined command executive system in media as well.In the context of this document, computing machine can use or computer-readable medium can be can comprise, store, communicate, propagate or any medium that transmission procedure uses together for instruction execution system, device or equipment use or combined command executive system, device or equipment.
Computing machine can use or computer-readable medium can be, such as but not limited to, electricity, magnetic, optical, electrical magnetic, infrared or semiconductor system, device, equipment or propagation medium.Exemplarily unrestricted, computer-readable medium can comprise computer-readable storage medium and communication media.
Computer-readable storage medium comprises the volatibility and non-volatile, removable and irremovable medium that realize for any method or technology that store the information such as such as computer-readable instruction, data structure, program module or other data.Computer-readable storage medium comprises, but be not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, tape cassete, tape, disk storage or other magnetic storage apparatus, maybe can be used for storing information needed and any other medium can accessed by instruction execution system.Note, computing machine can use or computer-readable medium can be it prints have the paper of program or another suitable medium, because program can via such as catching electronically the optical scanning of paper or other media, be compiled if necessary subsequently, explain, or with other suitable mode process, and be stored in subsequently in computer memory.
When specializing in the general context of this theme at computer executable instructions, this embodiment can comprise the program module performed by one or more system, computing machine or other equipment.Generally speaking, program module comprises the routine, program, object, assembly, data structure etc. that perform particular task or realize particular abstract data type.Usually, the function of program module can carry out combining or distributing in various embodiments as required.
Fig. 1 is the diagram of the embodiment 100 of the example user interface that the application code having interactive table and represent selected code element is shown.User by carrying out the source code of navigation application alternately with chart, this can make a window or other check mechanism display source code and other information.
Chart can illustrate the relation between individual code element and code element.In many examples, performance metric can be shown as a part for chart, and performance metric helper person can identify the code region supplying to check.Such as, by visually representing performance data via chart element, performance bottleneck can be highlighted, performs bad code or other situations, and programmer can to identify a certain code element based on this performance data for further analysis.
Embodiment 100 exemplifies user interface 102 exemplarily user interface, and user interface 102 can comprise other elements of title block 104, close window button 106 and user interface windows.
Chart 108 can be displayed in user interface 102.Chart can represent the relation between code element in application and code element.Code element can be represented as node 110, and the relation between code element can be represented as limit 112.In some cases, the code element without the relation between code element can be included, and such code element can be rendered as the single code element that can separate with other code elements.
Chart 108 can represent an application, and wherein each code element can be can by the executable code of the per unit of processor process.In some cases, code element can be function, process, thread, subroutine or certain other executable code block or group.In some cases, code element can be the natural division or grouping that can be created by programmer, such as function definition or other such groupings.
In other cases, one or more in code element are arbitrarily defined or divide into groups, such as, in the embodiment that can be taken as a code element to process in the executable lines of codes of a certain quantity.In such example, a code element can be designated by often organizing 10 line codes.Other embodiments can have other mechanism for identifying nature or arbitrary code element.
Chart 108 can show static data about a certain application and dynamic data.Static data can be any information that can be collected by static code analysis, can comprise some relation between controlling stream graph, executable code element, code element or other information.
Dynamic data can be any information by following the tracks of when applying and performing or monitor application and can be collected.The data that dynamic data can comprise code element definition, relation between code element and performance metric, operation statistics or other record or collect.
Chart 108 visable representation of usage data can present performance and service data.Such as, on a certain node the large I of icon indicate to a certain code element can the consumable processing time, storer or other resources measurement.In another example, the thickness on limit, color, length, animation or other visual signatures can represent various performance factor, the data volume such as transmitted, the message number of transmission or other factors.
Chart 108 can comprise from off-line analysis or other results analyzed.Such as, can be performed certain to mass data observations and analyze the specific node and limit that identify the problem area representing application.Such example can be the bottleneck analysis that can identify a particular code element that process may be caused to slow down.Such result by highlighting chart, amplify affected node, animation node and limit or certain other visual cues and be displayed on chart 108.
Real time data can be displayed on chart 108.Real time data can comprise can apply ongoing the term of execution collect performance metric, comprise the performance which code element display performs recently or record one or more code element.
User can select an element 112 alternately with chart 108.User can use cursor, touch-screen or other input mechanisms to select element 112.In certain embodiments, when label 114 being caused shown when hovering or the selected element 112 of selection on selected element 112.Label 114 can comprise some information of other identifiers of such as library name, function name or code element and so on.
After have selected element 112, Code Edit window 116 can be present in user interface 102.Code Edit window 116 can be the window with close window button 118, scroll bar 122 and other elements.In some cases, Code Edit window 116 can be suspended on chart 108, and user perhaps can move or reorientation Code Edit window 116.
Application code 120 can be displayed in Code Edit window 116.Application code 120 can show together with line number 124, and code element 126 can be highlighted.
Application code 120 can be the source code representation of just tested application.In the language with compiled code, source code may be compiled before execution.In the language with interpretive code, source code directly can be consumed by virtual machine, instant compiler or other mechanism.
In some applications, Code Edit window 116 can be a part for Integrated Development Environment, and Integrated Development Environment can comprise compiler, debug mechanism, execution administrative mechanism and other assemblies.Integrated Development Environment can be kit, and programmer develops by this cover instrument, tests and application deployment.
Highlighted code element 126 can be shown in Code Edit window 116.Highlighted code element 126 can represent the part represented by selected element 112 of application.In some cases, highlighted code element 126 can exemplify a certain subset in the many code lines represented by selected element 112.Example can highlight the first row in the many code lines represented by selected element 112.In other cases, highlighted code element 126 can identify the whole codes represented by selected element 112.
Data display 130 can comprise the various additional informations come in handy to programmer.In some cases, data display 130 can comprise the parameter value of the memory object that application uses.In some cases, data display 130 can comprise the performance data of collecting from tracker, and performance data can be combined data or statistics sometimes.
Fig. 2 exemplifies embodiment 200, and embodiment 200 illustrates the individual equipment of the interactive table had for navigation application code.Embodiment 200 is only an example of framework, and chart can be played up over the display in the architecture, and user can select the node of chart or limit to carry out each several part of the bottom source code of display application.
The diagram of Fig. 2 is illustrated the functional module of system.In some cases, assembly can be the combination of nextport hardware component NextPort, component software or hardware and software.Some assemblies can be application layer software, and other assemblies can be execution environment level assemblies.In some cases, assembly can be compact siro spinning technology to the connection of another assembly, and wherein two or more assemblies operate on single hardware platform.In other cases, the network connection connected by span length's distance is carried out.Each embodiment can use different hardware, software and interconnect architecture to realize described function.
Embodiment 200 exemplifies the equipment 202 can with hardware platform 204 and various component software.Illustrated in the equipment 202 that goes out represent conventional computing device, but other embodiment can have different configuration, framework or assembly.
In many examples, equipment 202 can be server computer.In certain embodiments, equipment 202 still can also be the computing equipment of desk-top computer, laptop computer, net book computing machine, graphic tablet or flat computer, wireless phone, cell phone, game console or any other type.
Hardware platform 204 can comprise processor 208, random access memory 210 and non-volatile memories 212.Hardware platform 204 also can comprise user interface 214 and network interface 216.
Random access memory 210 can be that comprise can by the storage of the data object of processor 208 quick access and executable code.In many examples, random access memory 210 can have high-speed bus storer 210 being connected to processor 208.
Non-volatile memories 212 can be the lasting storage kept after closing device 202.Non-volatile memories 212 can be the memory device of any type, comprises the storage of hard disk, solid-state memory device, tape cassete, optical memory or other types.Non-volatile memories 212 can be read-only or can read/write.In certain embodiments, non-volatile memories 212 can based on cloud, the network storage or other storages by network connected reference.
User interface 214 can be can display translation and receiving from the hardware of any type of the input of user.In many cases, Output Display Unit can be graphics display monitor, but output device can comprise light and other visions export, audio frequency exports, power actuator exports and other output devices.Conventional feed device can comprise keyboard and pointing device, such as mouse, stylus, tracking ball or other pointing devices.Other input equipments can comprise various sensor, comprise biometric input device, Voice & Video input equipment and other sensors.
Network interface 216 can be the connection of any type to another computing machine.In many examples, network interface 216 can be that wired ethernet connects.Other embodiments can comprise the wired or wireless connection based on various communication protocol.
Component software 206 can comprise operating system 218, and various component software and service can operate in this operating system 218.Operating system can provide level of abstraction between executive routine and nextport hardware component NextPort 204, and can comprise the various routine and function that directly communicate with various nextport hardware component NextPort.
The execution of execution environment 220 ALARA Principle application 222.The operation of application 222 can be caught by tracker 224, and tracker 224 can generate tracker data 226.Tracker data 226 can relation between authentication code element and code element, and renderer 228 can use them to produce chart 230.Chart 230 can be displayed on interactive display device, such as touch panel device, monitor and pointing device or other physical interface.
In certain embodiments, chart 230 can be created whole or in part from the data stemming from source code 232.Static code analysis device 234 can generate controlling stream graph 236, and renderer 228 can present chart 230 according to controlling stream graph 236.
In certain embodiments, chart 230 can comprise the data that can draw from static father, and from the data that dynamic or tracing source draw.Such as, chart 230 can comprise controlling stream graph, and tracking data can be coated on this controlling stream graph to describe various performance or other dynamic datas.Dynamic data can be by the term of execution measure the operation of application and any data of obtaining, and static data can represent from the source code 232 of application or other and to draw and without the need to performing application.
User inputs analyzer 238 can receive selection or other users input from chart 230.Select by identifying particular code element to the selection of one or more node, by identifying particular kind of relationship to the selection on one or more limit, or identify other users input in some cases, make one's options by selecting in interactive mode the object demonstrated in chart.In some cases, other user interface mechanism can be used to the object that selection is represented by chart.Other user interface mechanism like this can comprise Command Line Interface or can alternative other mechanism.
When being input by a user analyzer 238 to the selection of a specific node and receiving, code display 242 can be present in a user interface, and code display 242 can show and selects corresponding source code 240 with described on chart 230.
Selection on chart 230 is relevant to the line number in source code 240 or other assemblies by source code mapping 241.Source code map 241 can comprise source code can be mapped to the code element represented by the node on chart 230 prompting, link or other information.In many programmed environments, source code can be compiled or explain to produce executable code by different way.
Such as, source code can be compiled into intermediate code, intermediate code can be compiled into executable code with instant compiler, and executable code can be explained in process virtual machine.In each step running through the execute phase, the renewable source code of compiler, interpreter or other assemblies maps 241.Other embodiments can have other mechanism to determine the suitable source code about the given code element represented by a certain node on chart 230.
Chart 230 and other elements can be parts for Integrated Development Environment.Integrated Development Environment can be single application or one group of instrument, and developer creates by Integrated Development Environment, edit, compile, debug, test and perform application.In some cases, Integrated Development Environment can be can be used as interior poly-single should be used for operating a set of application and assembly.In other cases, such system can have different application or assembly.Integrated Development Environment can comprise editing machine 244 and compiler 246, and other assemblies, such as debugger, execution environment 220 and other assemblies.
Editing machine 244 and code can be shown 242 and be combined by some embodiments.In such embodiments, can use editing machine 244 to present code display 242, make user perhaps can code be shown when direct editing code.
In some cases, programmer can use and independently should be used for Application and Development.In situation so again, editing machine 244, compiler 246 and other assemblies can be can utility command row interface, graphic user interface or other mechanism come invoked different application.
Fig. 3 exemplifies embodiment 300, and embodiment 300 illustrates multiple equipment of the interactive table that can generate for navigation application code.Embodiment 300 is only an example of framework, and in this framework, some functions of embodiment 100 and 200 can be provided by distinct device across a network.
The diagram of Fig. 3 is illustrated the functional module of system.In some cases, assembly can be the combination of nextport hardware component NextPort, component software or hardware and software.Some assemblies can be application layer software, and other assemblies can be execution environment level assemblies.In some cases, assembly can be compact siro spinning technology to the connection of another assembly, and wherein two or more assemblies operate on single hardware platform.In other cases, the network connection connected by span length's distance is carried out.Each embodiment can use different hardware, software and interconnect architecture to realize described function.
Embodiment 300 can represent an example, and wherein multiple equipment can provide an interactive table to a development environment.Once chart is presented, user just can navigate through application code with chart alternately.
Embodiment 300 can functionally be similar to embodiment 200, but can exemplify a framework, and other equipment can perform various function in the architecture.By having the framework of dispersion, some equipment only can perform a certain subset of the operation that can be performed by the individual equipment in embodiment 200.On the equipment that such framework can allow the operation of such as computation-intensive to be placed on to have different ability.
Embodiment 300 also can create the chart representing a certain application that multiple equipment performs.One group of executive system 302 can comprise hardware platform 304 that can be similar with the hardware platform 204 of embodiment 200.Each hardware platform 304 can support an execution environment 306, applies 308 and can perform and tracker 310 can collect the various tracker data comprising performance data in this execution environment 306.
Many application can perform on multiple equipment.Some such application can perform the Multi-instance of application 308 concurrently, and wherein these examples can be mutually the same or almost identical.In other cases, some application in 308 can be different and serially operate or have certain other process streams.
Network 312 can connect the various equipment in embodiment 300.Network 312 can be the communication network of any type, and equipment can connect by network.
Data acquisition system (DAS) 314 can gather and process tracker data.Data acquisition system (DAS) 314 can receive data from tracker 310 and store data in database.In some cases, data acquisition system (DAS) 314 can perform the process to data.
Data acquisition system (DAS) 314 can have hardware platform 316 that can be similar with the hardware platform 204 of embodiment 200.Data acquisition unit 318 can receive and store the tracker data 320 from various tracker.Some embodiments can comprise can process tracker data to generate the real-time analyzer 322 about the real-time information of application 308.Such real-time information can be displayed on the chart of expression application 308.
Off-line analysis system 324 can the source code of analytical applications 308 or other represent to generate part or all that represent the chart of application 308.Off-line analysis system 324 can be able to the hardware platform 326 similar with the hardware platform 204 of embodiment 200 perform.
Off-line analysis system 324 can perform two kinds of dissimilar off-line analysiss.Term off-line analysis is only the agreement distinguished mutually between real-time or intimate real-time analysis with the data that can be provided by data acquisition system (DAS) 314.In some cases, the operation of off-line analysis system 324 in real time or can be close to and be performed in real time.
Off-line tracking device 328 can be perform the function to the in-depth analysis of tracker data 320.Relevant, the tracker data that such analysis can comprise that multiple tracker runs gather or perhaps can or perhaps can not by real time or be close to other that perform in real time and analyze.
Static code analysis device 330 can analyze source code 332 to create the controlling stream graph of application 308 or other represent.Such expression can be shown as a part for interactive table, can be navigated this application and source code thereof by interactive table user.
Rendering system 334 can collect the information relevant with interactive table, and creates the image or other expressions that can be displayed on the equipment of user.Rendering system 334 can have the hardware platform 336 similar with the hardware platform 204 of embodiment 200, and figure list constructor 338 and renderer 340.
Figure list constructor 338 can be collected data from each provenance and can construct chart, and chart can be generated as image by renderer 340.Figure list constructor 338 can collect such data from off-line analysis system 324 and data acquisition system (DAS) 314.In certain embodiments, only chart can be constructed according to off line data analysis, and in other embodiments, can only from the data configuration chart by following the tracks of collection.
Development system 342 can represent the equipment of user, and wherein chart can be shown and application code can be navigated.In certain embodiments, development system 342 can comprise Integrated Development Environment 346.
Development system 342 can have hardware platform 344 that can be similar with the hardware platform 204 of embodiment 200.Some application can perform on hardware platform 344.In some cases, various application can be the assembly of Integrated Development Environment 346, and in other cases, application can be can with or can not with the independent utility of other application integration.
Application can comprise the chart display 348 that can show the bar chart image that renderer 340 creates.In some cases, chart display 348 can comprise real time data, comprises the performance data that can be generated by real-time analyzer 322.When user and chart show 348 mutual time, code display 350 can be presented, and code display 350 can comprise the source code represented by selected chart element.Application also can comprise editing machine 354 and compiler 356.
Communication engines 351 can be collected data from each provenance and chart can be played up.In some cases, communication engines 351 can make figure list constructor 338 analyze 328 and real-time analyzer 322 retrieve data from static code analysis device 330, off-line tracking device, makes renderer 340 to create bar chart image.
Fig. 4 be illustrate for show chart and select in response to the selection from chart and present the embodiment 400 of the method for code process flow diagram illustrate.Embodiment 300 can exemplify the method that can be performed by collective's equipment of the equipment 202 of embodiment 200 or embodiment 300.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 400 can exemplify and comprise static analysis 402, performance analysis 404, plays up the method for 406 and Code Selection 408.The method represents for the method carrying out navigation application code according to the visual representation of chart by application, and chart can have the node representing code element and the limit representing the relation between code element.
According to application, generate chart by static analysis 402, performance analysis 404 or both combinations.
Static analysis 402 can be included in frame 410 and receive source code, and in block 412 perform static code analysis with generates apply controlling stream graph or other represent.Controlling stream graph can identify executable code block and the relation between them.Such relation can comprise function call and maybe can be expressed in source code or other relations that can draw from source code.
Performance analysis 404 can receive source code in frame 414, prepares source code to perform in frame 416, and performs application in frame 418, can monitor that source code is to generate tracker data by performing application in frame 420.The term of execution that performance analysis 404 being by observing, the agenda of code carrys out the relation between authentication code element and code element.
Performance analysis 404 can comprise the operation following the tracks of application.In many cases, be applied in when being prepared to perform in frame 416 and can be compiled or be otherwise processed.In frame 418 the term of execution, tracker can be configured to collect about application various tolerance, this can comprise the relation between authentication code element and code element.
The chart generated by static code analysis can be different from the chart generated by performance analysis.In general, static code analysis can be identified at normal conditions or under loading the term of execution multiple relations that may not be actually carried out.On the contrary, performance analysis can generate the chart of the substantial portion be performed representing application.
In many cases, performance analysis 404 can be included in frame 424 and collect performance data.Performance data can be added to chart and help user and understand and performance bottleneck may occur wherein, and other information relevant with performance.
Play up 406 can be included in frame 426 and identify code element and can identified relationships in block 428.In certain embodiments, static code analysis can be used to come authentication code element and relation, and other embodiments can use performance analysis or combination that is static or performance analysis to come authentication code element and relation.
Once code element and relation identified, chart can be played up in a block 430.In certain embodiments, can in frame 432 receptivity data, and in frame 434, chart can be upgraded by performance data.
When performance data is available, if also do not receive selection in frame 436, then process frame 430 of getting back to capable of circulation uses the performance data upgraded to play up chart.This circulation can upgrade chart with real-time or intimate real-time performance data.
When making one's options in frame 436, code element can be identified in frame 438.This code element can be corresponding with a certain element (can be one or more node or the limit of chart) from graph choice.The link from selected element to source code can be determined at frame 440, and can source code be shown at frame 442.Any relevant data element can be identified and can be shown in frame 446 in frame 444.
If user does not select edited source code in frame 448, then process frame 430 of getting back to capable of circulation is to upgrade chart by performance data.
If user selects edited source code in frame 448, then code can be updated in frame 450, is recompiled in frame 452, and performs and can be restarted in frame 454.Process can return frame 410 and 414 to generate new chart.
Fig. 5 is that the diagram of example embodiment 500 illustrates, wherein by selecting to create breakpoint.Embodiment 500 exemplifies the example user interface that can comprise the list object be associated with element selected by chart.From this row object, can create and start breakpoint.
The example of embodiment 500 can be only an example of the user interface that can be used to arrange breakpoint.Other embodiments can use many different user interface components with display about with select the information of relevant object and definition and dispose breakpoint.The example of embodiment 500 is only such embodiment.
User interface 502 can comprise the chart 504 can with interactive elements.Chart 504 can represent application with the limit of the node representing code element and the relation represented between code element.Chart 504 can be shown together with interactive elements, makes user perhaps can select a certain node or limit and and the source code, data object or other element interactionses that are associated with selected element.
Node 506 is illustrated as and is selected.In many cases, the visual effect highlighted can indicate node 506 and be selected.Such visual effect can be the vision ring of light, different colours or size, the flicker of animation or movement or certain other effects.
In response to the selection to node 506, object window 508 can be presented.Object window can comprise the various objects relevant with this node, and in the example of embodiment 500, those objects can be object 510 variable X of 495 (can be value be) and object 512 (value is " customer_name " (Customer Name) of " JohnDoe ").
In the example of embodiment 500, object 512 is selected objects 514.Based on selected objects 514, breakpoint window 516 can be presented.Breakpoint window 516 can comprise user interface, the expression formula of user creatable definition breakpoint condition in this user interface.Once be defined, breakpoint just can be stored, and execution can continue.When breakpoint is satisfied, performs and can suspend and the state allowing user to explore now to apply.
In a typical deployed, user can alternative 512 and can be presented a menu.This menu can be can comprise for drop-down menu or the popup menu of browsing object value, check source code, arrange the option of breakpoint or other options.
Fig. 6 is that the diagram of example embodiment 600 illustrates, wherein by selecting to represent that object is explored on the limit on the chart of application.Embodiment 600 is only an example of user interface 602, and in user interface 602, user can select and the object interaction relevant with this limit.
Chart 604 can represent a certain application, and wherein each node can represent a code element, and limit can represent the relation between code element.Relation can be the relation of any type, comprises the relation observed of such as function call, shared storage object and so on, or can from tracker inferred from input data or other relations given expression to.In other cases, relation can comprise the relation that can draw from static code analysis, such as control flow check element.
When limit 606 is by selection, how mutual with this limit 606 user can be presented some options.Option can comprise to be checked data object, check element of performance, arranges breakpoint, checks source code and other options.In the example of embodiment 600, statistical window 608 can illustrate some statistics observed and the object that is associated with this relation or data.
Two statistics 610 and 612 can be the examples of the performance data observed that can be presented.In the example of embodiment 600, limit 606 can represent a relation, and in relation, message and data can be transmitted between two code elements.Statistics 610 and 612 can illustrate size of message or the message number of data volume and the transmission of transmitting between code element.
Statistical window 608 can be included in the group objects transmitted between code element.Object 614,616 and 618 can comprise " customer_name " (Customer Name), " customer_address " (customer address), " last_login " (last login time).By alternative 614, data window 620 can be presented, and this data window illustrates the value of parameter " customer_name ".Value can be the data be associated with " customer_name " along the relation transmission represented by limit 606.
Embodiment 600 is only that user can have and mutual example between a certain relation in interactive table.Based on the selection to this relation, a breakpoint can be created, change breakpoint stop when a certain condition about this relation is satisfied and perform.Such as, breakpoint condition can be provided in any data through this relation transmission time, behavioral observation data cross over specific threshold time or other factors a certain time trigger.
Fig. 7 illustrates for by illustrating with the process flow diagram arranging the embodiment 700 of the method for breakpoint alternately of the chart exemplifying a certain application.Embodiment 700 can be the example by the breakpoint chart exemplifying a certain application being selected as in embodiment 500 to the user interactions of a certain node or select the user interactions on certain one side to create as in embodiment 600.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
At frame 702, the chart data of the relation represented between code element and code element can be gathered.In certain embodiments, chart data can comprise all code elements of a given application and all known relation.In other embodiments, chart data can comprise current by the code element that uses and relation, and they can be the subsets of the complete or collected works of code element and relation.
At frame 704, chart can be shown.In many cases, chart can have various interactive elements, and wherein user perhaps can select a certain node, limit, the grouping on node or limit or other elements and mutual with it.In some cases, user perhaps directly can select element-specific from chart, such as, with cursor or touch screen interface.At frame 706, such selection can be received.This selection can be a certain node on chart or limit.
At frame 708, the code object relevant with selected element can be identified.This code object can be any memory object, code element, data, metadata, performance metric or the sundry item that can be associated with code element.
When selecting a certain node in frame 706, the object relevant with corresponding code element can be identified.Such object can comprise other data of source code, memory object and this code element access, and behavioral observation data, such as process the time of cost, storer utilization rate, CPU usage, the garbage reclamation of execution, cache-miss or other observed data.
When selecting certain on one side in frame 706, the object relevant with corresponding relation can be identified.Such object can comprise data value through the parameter of this relation transmission and agreement, those parameters and behavioral observation data, and behavioral observation data can comprise across the amount of communications of this relation, the data value of transmission, the data volume of transmission and other observed data.
When selecting certain on one side in frame 706, some embodiments can comprise with the transmission of selected relation and receive the relevant object of code element.In such embodiments, the object retrieved can comprise all object relevant with this relation and all objects relevant with kind of the code element of two in this relation.Some such embodiments can when display object filtering object, make only object a certain subset be shown.
At frame 710, a certain subset of object that can show identified object or identify.
At frame 712, breakpoint can be received.In many cases, what a user interface can help user to use in the object identified in frame 708 one or morely creates breakpoint.Such user interface can comprise selects mechanism, and wherein user perhaps can select a certain object and arrange the parameter threshold relevant with this object or other expression formulas a certain, and then this expression formula can be set to breakpoint.In certain embodiments, a user interface can allow user to create and can quote the complex expression of the one or more objects in various object to be set to breakpoint.
At frame 714, can breakpoint be set.In many examples, arrange breakpoint and can relate to breakpoint condition is sent to tracker or other assemblies, wherein this assembly can monitor to perform and assess breakpoint condition and perform to determine when to suspend.In certain embodiments, monitoring component can be a part for execution environment.
By arranging breakpoint, execution can continue in block 716 until a certain breakpoint is satisfied in frame 718.Once be satisfied at frame 718 point of interruption, then perform in frame 720 and can be suspended.
In frame 718, it can be any mechanism that breakpoint condition can be satisfied that term " meets breakpoint ".In some cases, breakpoint can be defined by passive way, as long as make breakpoint condition not be satisfied, perform and just can continue.In other cases, breakpoint can be defined in a positive manner, as long as make breakpoint condition be satisfied, perform and just can continue.
Once perform paused in frame 720, then can identify the code element that its point of interruption is satisfied in frame 722.In some cases, by the node or limit with an expression code element or a pair code element, a breakpoint is set alternately, and usually can meets a breakpoint by third generation code element.The code object relevant with the code element that its point of interruption is satisfied can in frame 724 identified go out and in frame 726 be shown.
Once object is shown, user just can with object interaction to check also query object, and applies and be in halted state.Once such inspection is done, user just can select to continue to perform in frame 728.In frame 732, user can select to continue to perform with identical breakpoint, and process can be circulated back to frame 716 after replacement breakpoint.User also can select to remove this breakpoint in frame 732, and this breakpoint can be removed and be circulated back to frame 702 in frame 734.At frame 728, user also can select not continue, and wherein performs in frame 730 and can stop.
Fig. 8 A, 8B and 8C illustrate at the diagram of the chart of first time period 802, second time period 804 and the 3rd time period 806.The sequence of time period 802,804 and 806 represents that highlighted code object can travel through the progress of chart.Each step in the sequence of illustrated time period 802,804 and 806 can represent multiple time step and sequence, and the illustration of time period 802,804 and 806 is selected to show some sequence in simplified form.
A certain object or related objects are when traveling through chart, and this object can be highlighted.A certain object can be the memory object that can be delivered to another code element from a code element.In some cases, this code element can be transformed at each code element place and be issued as a different object.
In another embodiment, this object can be process pointer or perform pointer, and highlights the sequence that can exemplify the code element that the part that can be used as application is performed.
By sequentially highlighting code element, the sequence of execution can be present on chart.In some cases, the relation on chart also can be highlighted.Some embodiments can use animation, to highlight or movement that object travels through chart in order illustrates and performs stream by using.
Some embodiment can use flechette-type, arrow or other directions to accord with and illustrate that a certain object crosses over the oriented movement of chart.The form that such direction accords with available animation exemplifies a certain object that can traverse another code element from a code element, such as circle or other shapes.
Highlight and user's check object can be allowed how mutual with each object elements.In certain embodiments, a certain object can be performed by mode step-by-step by the progress of chart, and wherein the advance of object can be suspended at each relation place and make user perhaps can check various data object alternately with node and limit.
Depend on application, in certain embodiments, object can be illustrated in real time by the traversal of chart.In some cases, application can rapidly handling object make human eye may not see traversal or chart may not be upgraded fast enough.Under these circumstances, object can be illustrated by slower broadcasting speed by the traversal of chart.When some are such, can use may or may not be that the history of real-time collecting or the data of storage are to perform broadcasting.
In first time period 802, an object can start at node 808 and traverse node 810 then to arrive node 812.Such traversal can reflect the situation that a certain object is processed at node 808 place, and then this object or its impact are processed by node 810 and 812 in order.
In certain embodiments, origin object can change, is transformed or otherwise produces downstream influences.In such a case, the output of a certain code element can the tracked and highlighted element be illustrated as on chart.Such as, can comprise can by the data element of some code element process in a request of importing into.This data element can change, and process can make other code elements start process.Such change or impact can be identified and highlighted for monitoring the aftereffect of primary object on chart.
In certain embodiments, the position that highlighting in charted series can reflect a specific memory object or the operation that this object is performed.In such embodiments, when this memory object travels through this application, the code element that may consume this memory object can be highlighted.
In the second time period 804, the sequence performing or process can proceed to node 814 from node 812, to node 816, and gets back to node 812.Sequence illustrated in time period 804 can reflect the circulation performing and control.In some cases, while following a certain object, this circulation can be performed repeatedly.
In the 3rd time period 806, the sequence of execution can proceed to node 814 and 816 concurrently from node 812, then sequentially proceeds to node 818 and 820.The example of time period 806 can exemplify and two or more code elements may be caused to be executed in parallel at the single object that node 812 place is just tracked.Then this parallel work-flow can converge in node 818.
Fig. 9 is that the process flow diagram of the embodiment 900 of the method illustrated for being highlighted chart by moving of chart with regard to a certain object is illustrated.The operation of embodiment 900 can produce highlighting throughout chart, illustrated those in the such as time period 802,804 and 806.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 900 can exemplify for showing the method highlighted on chart, wherein highlights a certain object and impact thereof that can represent and flow through a certain application.In some cases, the live data that real-time or intimate real-time collecting can be used also to show is to be current embodiment 900.In other cases, can use can collect during a time period and the storage of resetting in time period after a while or illustrate data in current embodiment 900.
When the data demonstrated may be real-time or be close to real-time data, the operation of application can be slowed down and be checked.In some cases, each step that may upgrade chart in sequence all can be suspended to allow the visual transition from previous state of user.An embodiment so also can input continuation with a user at each step pause sequence.User can be utilized to press ' carriage return ' for an embodiment like this or certain other mechanism continue this sequence is advanced.In certain embodiments, sequence can suspend a period of time, and such as 0.25 second, 0.5 second, 1 second, 2 seconds or a certain other times, then proceed to the next step in sequence.
The chart data representing the code element of a certain application and the relation of code element can be received at frame 902.At frame 904, chart can be shown.
At frame 906, can receive and want object to be tracked.In many examples, this object is selected by a user interface.In some cases, by mutual with chart and identify a certain object by the user interface that can show one or more objects that can be tracked, can alternative.In some cases, this object is identified by a programming interface.
At frame 908, the position of wanting object to be tracked can be identified.This position can relate to a certain node on chart or limit.In some cases, single object or tracking condition can cause multiple node or limit highlighted.
At frame 910, highlight and can be displayed on chart.
If also do not receive the input advancing to following time interval in frame 912, then can suspend display in frame 914, process is capable of circulation gets back to frame 912.Once meet the condition proceeding to following time interval in frame 912, process can continue.
At frame 916, the ensuing position for highlighting can be identified.In some cases, the next position can be multiple position.An example of such situation can be such a case, wherein because the possibility of result of process first code element starts multiple process or thread.
For each position in frame 918, if this position is not new in the block 920, then process is capable of circulation gets back to frame 918.
If this position is new position in the block 920, then can creates in frame 922 and old position is connected to highlighting of the relation of reposition.This highlights can have direction symbol, such as gradient color, flechette-type, arrow, mobile animation or certain other designators.
Embodiment 900 exemplifies a method, and wherein old position can have by highlighting of abandoning, and this is created in frame 924.May be not stronger by highlighting of abandoning, make user perhaps can visual a certain object or its movement of impact from old position to reposition.After being in state of being abandoned time step, the highlighting of position in two generations on removable in frame 926.
Processed each new position in frame 918 after, in frame 928, chart can be upgraded with to the change highlighted.This process can be back to frame 910 with display with the chart highlighted.
Figure 10 is that the diagram of the embodiment 1000 that the distributed system with interactive table is shown illustrates.Embodiment 1000 can be deployed to gather and show tracker data and use filtrator to carry out the example of the assembly of the visual representation of Update Table.
Embodiment 1000 exemplify for dispose can change shown by two kinds of different mechanisms of the filtrator of chart of going out.In a mechanism, can just apply filters before playing up chart.In another mechanism, original tracker data can be converted by tracker apply filters, therefrom can play up chart.Various embodiment can dispose one or both mechanism to apply a filter to tracker data.
While application 1002 performs, tracker 1004 can gather tracker data 1006.Tracker data 1006 can relation between authentication code element and code element.
Tracker data can be sent to equipment 1030 by across a network 1010 by allocator 1008.Equipment 1030 can be independently computing machine or have playing up and show the processing power of chart and handle other equipment of user's interface unit of chart.
Equipment 1030 can have the receiver 1012 that can receive tracker data 1006.Filtrator 1014 can before renderer 1016 transform data, renderer 1016 can generate the chart 1020 that can be shown on display 1018.
User interface 1022 can gather the input from user, and therefrom navigation manager 1024 can create, revises and dispose filtrator 1014.Filtrator can make tracker data 1006 use different groupings, conversion or other manipulations to be played up.
In some cases, navigation manager 1024 can make some filtrator be applied by tracker 1004.Navigation manager 1024 can receive the input that can change tracker 1004 how image data, then creates the filtrator that can indicate such change.Filtrator can be included in tracker data 1006 and adds or remove data element, increase or reduce tracker frequency, make tracker 1004 perform data manipulation and conversion or other to change.
Some filtrators can send receiver 1028 to by allocator 1026 across a network 1010, and change can be passed to tracker 1004 by receiver 1028.Filtrator can be used to change tracker data 1006 and operate for follow-up tracking at tracker 1004 place.The effect of such conversion can then be checked on chart 1020.
Figure 11 A and 11B is that the diagram of the user interface that chart 1102 and 1104 is shown illustrates respectively.The sequence of chart 1102 and 1104 exemplifies a kind of Consumer's Experience, and its middle filtrator is used to and a picture group table element is combined into individual node.
Chart 1102 represents the application with two groups of code elements.One group of code element can be the member of " hello_world ", and another group code element can be the member of " disk_library ".It is the member of " disk_library " that node 1106,1108,1110,1112 and 1114 is illustrated as, and each node is illustrated as shade to represent their group membership's relation.
Node 1114 is illustrated as just to be selected, and can apply the ring of light or other visions highlight.When node 1114 is by selection, user interface 1116 can be presented to user.
User interface 1116 can comprise many different filtrators, conversion, maybe can be performed other operation.In many cases, selected node 1114 can be used as the input of institute's selection operation by such operation.In the example of chart 1102, option can to comprise combination of nodes together, selected node is launched into multiple node, check source code, display-memory object and display performance data.These options be only can by or the example that can not be included in various embodiment.In some cases, additional operations can be presented.
In the example of chart 1102, select 1118 can indicate user and select to combine the node similar with selected node 1114.
In chart 1104, node 1106,1108,1110,1112 and 1114 is illustrated as and is combined into node 1130.Chart 1104 exemplifies the result of data combination filter being applied to chart 1102, and wherein all similar combination of nodes are become individual node by combination filter.
Another user interface mechanism can be legend 1120, and group 1122 and 1124 can be shown for " hello_world " group and " disk_library " group by it.The shade of the grouping shown in legend may correspond to the shade in being applied to the various nodes in chart.
Legend 1120 can be used to serve as a kind of user interface mechanism by icon 1126 and 1128 by making combination operation and expansion operation.Such icon can switch between integrated mode and expansion pattern.
When " disk_library " node group is combined in chart 1104, the limit various node being connected to the node 1130 of combination can be highlighted.In the example of chart 1104, limit 1132,1134 and 1136 is illustrated as dotted line or has certain other vision differences distinguished mutually with other limits.Highlighting like this can indicate one, two or more relation can represented by highlighted limit.
Legend 1138 can exemplify the group 1140 and 1142 with icon 1144 and 1146.Icon 1144 can exemplify this group and be illustrated as combination, and can be switched to change and get back to chart 1102.
Figure 12 illustrates for creating filtrator and the process flow diagram of the embodiment 1200 of the method for the chart gone out shown by applying a filter to illustrates.Embodiment 1200 can exemplify a method that can realize conversion illustrated in Figure 11 A and 11B, and a method that can be performed by the assembly of embodiment 1000.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
The chart data of the relation represented between code element and code element can be received at frame 1202, and chart can be shown according to described data at frame 1204.When may not make one's options to chart in frame 1206, process frame 1202 of getting back to capable of circulation is with the chart data of display update.In the example of embodiment 1200, chart can reflect the real-time or intimate real-time renewal that can gather from tracker.
When making one's options in frame 1206, upgrade in frame 1208 and can suspend.Can selected objects be highlighted at frame 1210, and a menu can be presented at frame 1212.At frame 1214, user can operate from this menu setecting one.At frame 1216, if this operation does not change a filtrator, then this operation can be performed in frame 1218.In previous example, the source code of the selected element of some the comprised displays in operation, the display performance data relevant with selected element, arrange breakpoint or certain other operate.
When selecting described in frame 1216 to be the change to a filtrator, can receiving filtration device definition in frame 1220.This filter definition can be change the predefine of the filtrator that can be only selected by user.In some cases, user can input data, creates expression formula or provide certain other filter definitions.
Can be applied to chart renderer at frame 1222 filtrator, and process is capable of circulation gets back to frame 1202.In some cases, this filtrator can be transferred into tracker or other data sources, and the effect of this filtrator in frame 1204 can be checked on chart.
The object of foregoing description of the present invention for diagram and description is presented.It is not intended to exhaustive theme or this theme is limited to disclosed precise forms, and in view of above-mentioned instruction other amendment and modification be all possible.Select and describe embodiment to explain principle of the present invention and practical application thereof best, enable others skilled in the art utilize the present invention in various embodiment and various being suitable for best in the amendment of conceived special-purpose thus.Appended claims is intended to be interpreted as comprising other alternative embodiments except the scope limit by prior art.

Claims (77)

1. the method performed on a computer processor, described method comprises:
Display has the node representing code element and the chart on limit representing the relation between described code element, the funtcional relationship that described relation is execution by monitoring described code element and draws;
Receive the selection of mark first node;
Determine that described first node is relevant with first code element; And
Show the source code relevant with described first code element.
2. the method for claim 1, is characterized in that, described funtcional relationship is the function call between described code element.
3. the method for claim 1, is characterized in that, described funtcional relationship comprises shared storage.
4. the method for claim 1, is characterized in that, described selection is made by the interactive elements on described chart.
5. method as claimed in claim 4, is characterized in that, described chart comprises the designator relevant with the term of execution performance metric collected at described code element.
6. method as claimed in claim 5, is characterized in that, described chart is at least close to and is updated in real time.
7. method as claimed in claim 5, it is characterized in that, described designator comprises the visual indicator relevant with described node.
8. method as claimed in claim 7, it is characterized in that, described visual indicator comprises the difference in size between node.
9. method as claimed in claim 7, it is characterized in that, described visual indicator comprises the color distortion between node.
10. method as claimed in claim 4, is characterized in that, described chart comprises the direction symbol on multiple described limit.
11. 1 kinds of systems, comprising:
Receive the communication engines of chart data, described chart data comprises the node representing code element and the limit representing the relation between described code element, and described relation is funtcional relationship;
Display;
Described display is made to play up the chart renderer of the chart at least partially representing described chart data;
Receive user's input mechanism of the selection of mark first node; And
Show the code display mechanism of the source code relevant with described first node.
12. systems as claimed in claim 11, is characterized in that, described communication engines receives the renewal to described chart data, and described chart renderer upgrades described chart based on described more newly arriving.
13. systems as claimed in claim 12, it is characterized in that, described user's input mechanism comprises the interactive elements be placed on described chart.
14. systems as claimed in claim 13, it is characterized in that, described user's input mechanism is touch-screen.
15. systems as claimed in claim 13, is characterized in that, comprise further:
The term of execution monitor described code element and gather the tracker of the performance data relevant with described node, described performance data is sent to described communication engines by described tracker, and described performance data is included in described chart data at least partially.
16. systems as claimed in claim 15, it is characterized in that, described chart renderer is further:
Described performance data is at least partially shown as the visual indicator on described chart.
17. systems as claimed in claim 16, it is characterized in that, described visual indicator is applied to described node.
18. systems as claimed in claim 16, it is characterized in that, described visual indicator is applied to described limit.
19. systems as claimed in claim 18, it is characterized in that, described chart is power guideline.
Use and represent that the interactive table of application arranges breakpoint
20. 1 kinds of methods performed on a computer processor, described method comprises:
Display has the chart on the node representing code element and the limit representing the relation between described code element;
Receive the selection of mark first node, described first node selects mechanism to select from the interactive mode described chart, and described first node represents first code element;
Identify first object relevant with described first relation;
Show described first object; And
Receive the breakpoint definition of described first breakpoint.
21. methods as claimed in claim 20, is characterized in that, comprise further:
Described code element is performed until described breakpoint is satisfied.
22. methods as claimed in claim 21, is characterized in that, comprise further:
Identify the multiple objects relevant with described first code element; And
Show described multiple object at least partially.
23. methods as claimed in claim 21, is characterized in that, comprise further:
Receive the renewal to described chart; And
With the described described chart of display of more newly arriving.
24. methods as claimed in claim 23, is characterized in that, described renewal is at least close to and is received in real time.
25. methods as claimed in claim 21, is characterized in that, when performing arrival second code element, described breakpoint is satisfied.
26. methods as claimed in claim 25, is characterized in that, comprise further:
Highlight in the display of described second code element place when described breakpoint is satisfied.
27. methods as claimed in claim 20, is characterized in that, comprise further:
Receive the chart data of the relation represented between code element and described code element, described chart data generates from tracker.
28. methods as claimed in claim 27, is characterized in that, comprise further:
The change of mark to described chart data; And
Described change is sent to described tracker.
29. 1 kinds of methods performed on a computer processor, described method comprises:
Display has the chart on the node representing code element and the limit representing the relation between described code element;
Receive the selection on mark first limit;
Identify the first relation represented by described first limit;
The mark first code element relevant with described first relation and second code element; And
Show at least one object relevant with described first relation.
30. methods as claimed in claim 29, it is characterized in that, described relation is funtcional relationship.
31. methods as claimed in claim 29, it is characterized in that, described funtcional relationship is the function call between described code element.
32. methods as claimed in claim 29, it is characterized in that, described funtcional relationship comprises shared storage.
33. methods as claimed in claim 29, it is characterized in that, described funtcional relationship is determined by static code analysis.
34. methods as claimed in claim 29, is characterized in that, described funtcional relationship is determined by the dynamic surveillance to described code element.
35. methods as claimed in claim 29, is characterized in that, described selection is made by the interactive elements on described chart.
In the chart of expression application, animation highlights
36. 1 kinds of methods performed on a computer processor, described method comprises:
Receive and apply relevant Object Selection with one;
Check that the tracking data of described application is to identify the first code element interactions in described object and described application, and the second code element interactions identified in described object and described application, described first code element is connected by the relation in described application with described second code element;
Generate the chart data for playing up chart, described chart comprises the node representing code element and the limit representing the relation between described code element;
Generate comprise highlight for first of first node highlight designator, described first node represents described first code element, and described first highlights and represent described object and described first code element interactions; And
Make described chart data be played up described chart, and described in highlight designator and will be displayed on described chart.
37. methods as claimed in claim 36, is characterized in that, comprise further:
Generate and highlight for second of Section Point, described Section Point represents described second code element, and described second highlights the described object of expression and described second code element interactions.
38. methods as claimed in claim 37, is characterized in that, comprise further:
Make described first be highlighted on the very first time be shown, and described second be highlighted on the second time be shown.
39. methods as claimed in claim 37, is characterized in that, comprise further:
Highlight the first limit application the 3rd, described first limit represents the described relation between described first code element and described second code element.
40. methods as claimed in claim 39, is characterized in that, the described 3rd highlights to comprise and indicate from described first node to the vision of the directivity of described Section Point.
41. methods as claimed in claim 40, is characterized in that, the vision instruction of described directivity comprises arrow.
42. methods as claimed in claim 40, is characterized in that, the vision instruction of described directivity comprises animation.
43. systems as claimed in claim 36, it is characterized in that, described object comprises one in the group be made up of the following:
Memory object;
Request; And
Code element.
44. 1 kinds of methods performed on a computer processor, described method comprises:
Display comprises the chart of the node of the code element that expression one is applied, and described chart comprises the limit of the relation represented between described code element further;
Receive the Object Selection represented by the object of first code element and second code element operation; And
By showing described Object Selection to representing that the first node application first of described first code element highlights.
45. methods as claimed in claim 44, is characterized in that, comprise further:
To representing that the Section Point application second of described second code element highlights.
46. methods as claimed in claim 45, is characterized in that, comprise further:
Apply the 3rd to the first limit of the relation represented between described first code element and described second code element to highlight.
47. methods as claimed in claim 46, is characterized in that, comprise further:
Receive chart data from the first equipment, described chart data represents described node and described limit;
Described Object Selection is sent to described first equipment; And
Receive from described first equipment and highlight data, described in highlight described in Data Identification and first to highlight, described second highlight and the described 3rd to highlight.
48. methods as claimed in claim 47, is characterized in that, comprise further:
Highlight in very first time example display described first; And
Highlight in the second time instance display described second.
49. methods as claimed in claim 48, is characterized in that, described very first time example and described second time instance can be controlled by user.
50. methods as claimed in claim 49, is characterized in that, comprise further:
Receive input from user and make described chart proceed to described second time instance based on described input.
51. 1 kinds of highlighted charts played up by computer equipment, the chart of described animation comprises:
Multiple node, node described in each represents the code element of an application;
Many limits, each described limit represents the relation between the described code element in described application;
Represent that an object is highlighted by first of first code element operation, described first highlights the first node being applied to representing described first code element.
52. charts highlighted as claimed in claim 51, is characterized in that, comprise further:
Represent that described object is highlighted by second of second code element operation, described second highlights the Section Point being applied to representing described second code element.
53. charts highlighted as claimed in claim 52, it is characterized in that, when described first code element operated described object before described second code element, described second be highlighted on described first highlight after be applied to described chart.
54. charts highlighted as claimed in claim 52, is characterized in that, comprise further:
Represent that the 3rd of the relation between described first code element and described second code element the highlights, the described 3rd highlights the first limit being applied to connecting described first node and described Section Point.
55. charts highlighted as claimed in claim 54, is characterized in that, comprise further:
Instruction accords with from described first node along described first limit to the direction of the stream of described Section Point.
56. charts highlighted as claimed in claim 55, is characterized in that, described direction symbol comprises arrow.
57. charts highlighted as claimed in claim 55, is characterized in that, described direction symbol is the designator of animation.
Filter and convert the chart representing application
58. 1 kinds of methods performed by computer processor, described method comprises:
Receive the chart data collection comprising node and limit, described node corresponds to code element, and described limit corresponds to the relation between described code element, and described chart data comprises the node of the individual instances representing described code element;
Receiving filtration device defines, and described filter definition defines the grouping of described code element and described relation; And
Use described filter definition to show described chart data collection over the display, described node and described limit are grouped according to described filter definition, and described chart data collection is shown as interactive table.
59. methods as claimed in claim 58, it is characterized in that, described filter definition comprises individual node code element described in first group being expressed as combination.
60. methods as claimed in claim 59, is characterized in that, comprise further:
Use the First look circuit sectionalizer being applied to the individual node of described combination to show the individual node of described combination, described First look circuit sectionalizer is different from Section Point, and described Section Point is not the node of combination.
61. methods as claimed in claim 59, is characterized in that, comprise further:
Use the First look circuit sectionalizer being applied to one group of limit of the individual node being connected to described combination to show the individual node of described combination, described First look circuit sectionalizer is different from Second Edge, described Second Edge connects first node and Section Point, and described first node and described Section Point are not the nodes of combination.
62. methods as claimed in claim 59, is characterized in that, described first group of code element is the different instances of single code element.
63. methods as claimed in claim 62, is characterized in that, described different instances is the example of the described single code element operated on different processor.
64. methods as claimed in claim 62, is characterized in that, described different instances is the example of the described single code element operated on a single processor.
65. methods as claimed in claim 59, is characterized in that, described first group of code element is the member in a common code storehouse.
66. methods as described in claim 65, it is characterized in that, described common code storehouse is single library.
67. methods as described in claim 65, it is characterized in that, described common code storehouse is a common source code file.
68. methods as claimed in claim 59, is characterized in that, described filter definition is by being activated with the mutual of described interactive table.
69. methods as recited in claim 68, is characterized in that, describedly comprise selection first node alternately, and described first node is not the member of described grouping.
70. methods as recited in claim 68, it is characterized in that, described comprising alternately selects a project from legend, and described project is relevant with described grouping.
71. methods as claimed in claim 59, is characterized in that, comprise further:
Receive the second filter definition, described second filter definition defines the second grouping of described code element and described relation; And
Use described filter definition and described second filter definition to show described chart data collection.
72. 1 kinds of systems, comprising:
Comprise the user interface of display and user's input mechanism;
Processor, described processor:
Receive the chart data collection comprising node and limit, described node corresponds to code element, and described limit corresponds to the relation between described code element, and described chart data comprises the node of the individual instances representing described code element;
Receiving filtration device defines, and described filter definition defines the grouping of described code element and described relation; And
Use described filter definition to show described chart data collection over the display, described node and described limit are grouped according to described filter definition, and described chart data collection is shown as interactive table.
73. systems as described in claim 72, it is characterized in that, described filter definition comprises individual node code element described in first group being expressed as combination.
74. systems as described in claim 73, it is characterized in that, described processor is further:
Use the First look circuit sectionalizer being applied to the individual node of described combination to show the individual node of described combination, described First look circuit sectionalizer is different from Section Point, and described Section Point is not the node of combination.
75. systems as described in claim 74, it is characterized in that, described processor is further:
Use the First look circuit sectionalizer being applied to one group of limit of the individual node being connected to described combination to show the individual node of described combination, described First look circuit sectionalizer is different from Second Edge, described Second Edge connects first node and Section Point, and described first node and described Section Point are not the nodes of combination.
76. systems as described in claim 73, it is characterized in that, described first group of code element is the different instances of single code element.
77. systems as described in claim 76, it is characterized in that, described different instances is the example of the described single code element operated on different processor.
CN201480029533.0A 2013-05-21 2014-01-15 For the chart of navigation application code Pending CN105229617A (en)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US13/899,500 US8990777B2 (en) 2013-05-21 2013-05-21 Interactive graph for navigating and monitoring execution of application code
US13/899,504 2013-05-21
US13/899,500 2013-05-21
US13/899,503 US20140189650A1 (en) 2013-05-21 2013-05-21 Setting Breakpoints Using an Interactive Graph Representing an Application
US13/899,504 US9734040B2 (en) 2013-05-21 2013-05-21 Animated highlights in a graph representing an application
US13/899,507 US20140189652A1 (en) 2013-05-21 2013-05-21 Filtering and Transforming a Graph Representing an Application
US13/899,503 2013-05-21
US13/899,507 2013-05-21
PCT/US2014/011733 WO2014189553A1 (en) 2013-05-21 2014-01-15 Graph for navigating application code

Publications (1)

Publication Number Publication Date
CN105229617A true CN105229617A (en) 2016-01-06

Family

ID=51933928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480029533.0A Pending CN105229617A (en) 2013-05-21 2014-01-15 For the chart of navigation application code

Country Status (3)

Country Link
EP (1) EP3000041A4 (en)
CN (1) CN105229617A (en)
WO (1) WO2014189553A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930526A (en) * 2016-05-30 2016-09-07 深圳市华傲数据技术有限公司 Data visualization processing method and device
CN110321117A (en) * 2018-03-29 2019-10-11 优视科技(中国)有限公司 Application processing method, device and server
CN113590103A (en) * 2020-04-30 2021-11-02 深圳中砼物联网科技有限公司 Method, computer device and storage medium for realizing graphical code-free development user interface
WO2021217660A1 (en) * 2020-04-30 2021-11-04 深圳中砼物联网科技有限公司 Method for realizing graphical code-free development of user interface, and computer device and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11948116B2 (en) 2017-09-22 2024-04-02 1Nteger, Llc Systems and methods for risk data navigation
CN111190583B (en) * 2019-12-31 2021-10-22 华为技术有限公司 Associated conflict block presenting method and equipment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073529A1 (en) * 2002-10-10 2004-04-15 Stanfill Craig W. Startup and control of graph-based computation
US6792595B1 (en) * 1998-12-23 2004-09-14 International Business Machines Corporation Source editing in a graphical hierarchical environment
US20080104570A1 (en) * 1999-12-20 2008-05-01 Christopher Chedgey System and method for computer-aided graph-based dependency analysis
US20080163124A1 (en) * 2006-12-29 2008-07-03 Sap Ag Graphical user interface system and method for presenting objects
US20110154300A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Debugging From A Call Graph
CN102592079A (en) * 2010-12-30 2012-07-18 卡巴斯基实验室封闭式股份公司 System and method for detecting unknown malware

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243857B1 (en) * 1998-02-17 2001-06-05 Nemasoft, Inc. Windows-based flowcharting and code generation system
US7174536B1 (en) * 2001-02-12 2007-02-06 Iowa State University Research Foundation, Inc. Integrated interactive software visualization environment
US7519960B2 (en) * 2003-12-19 2009-04-14 International Business Machines Corporation Method and system for debugging business process flow
US8020153B2 (en) * 2004-10-04 2011-09-13 Panasonic Corporation Source code checker, source code checking method, program for causing execution of the method, and storage medium for storing the program
US8296744B2 (en) * 2008-10-03 2012-10-23 Microsoft Corporation Tree-based directed graph programming structures for a declarative programming language
US9449405B2 (en) * 2010-11-30 2016-09-20 Sap Se Systems and methods to display dependencies within a graph of grouped elements
US8745591B2 (en) * 2011-10-19 2014-06-03 Microsoft Corporation Data flow visualization and debugging

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792595B1 (en) * 1998-12-23 2004-09-14 International Business Machines Corporation Source editing in a graphical hierarchical environment
US20080104570A1 (en) * 1999-12-20 2008-05-01 Christopher Chedgey System and method for computer-aided graph-based dependency analysis
US20040073529A1 (en) * 2002-10-10 2004-04-15 Stanfill Craig W. Startup and control of graph-based computation
US20080163124A1 (en) * 2006-12-29 2008-07-03 Sap Ag Graphical user interface system and method for presenting objects
US20110154300A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Debugging From A Call Graph
US8359584B2 (en) * 2009-12-18 2013-01-22 Microsoft Corporation Debugging from a call graph
CN102592079A (en) * 2010-12-30 2012-07-18 卡巴斯基实验室封闭式股份公司 System and method for detecting unknown malware

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930526A (en) * 2016-05-30 2016-09-07 深圳市华傲数据技术有限公司 Data visualization processing method and device
CN105930526B (en) * 2016-05-30 2019-06-14 深圳市华傲数据技术有限公司 The visible processing method and device of data
CN110321117A (en) * 2018-03-29 2019-10-11 优视科技(中国)有限公司 Application processing method, device and server
CN113590103A (en) * 2020-04-30 2021-11-02 深圳中砼物联网科技有限公司 Method, computer device and storage medium for realizing graphical code-free development user interface
WO2021217660A1 (en) * 2020-04-30 2021-11-04 深圳中砼物联网科技有限公司 Method for realizing graphical code-free development of user interface, and computer device and storage medium
CN113590103B (en) * 2020-04-30 2024-02-02 广东中砼物联网科技有限公司 Method, computer device and storage medium for realizing graphical code-free development user interface

Also Published As

Publication number Publication date
EP3000041A1 (en) 2016-03-30
EP3000041A4 (en) 2017-05-10
WO2014189553A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
US9658943B2 (en) Interactive graph for navigating application code
US20140189651A1 (en) Animated Highlights in a Graph Representing an Application
US20140189650A1 (en) Setting Breakpoints Using an Interactive Graph Representing an Application
US20140189652A1 (en) Filtering and Transforming a Graph Representing an Application
CN105122257B (en) Transfer function for Dynamic Announce tracker data is inserted into
Engel et al. Evaluation of microservice architectures: A metric and tool-based approach
CN105765528A (en) Application execution path tracing with configurable origin definition
CN105122236A (en) Controlling application tracing using dynamic visualization
CN105122216A (en) Force directed graph with time series data
CN105229617A (en) For the chart of navigation application code
US6205575B1 (en) Scenario presentation tool
US8135572B2 (en) Integrated debugger simulator
US20130318500A1 (en) Debugging in a Dataflow Programming Environment
US9336121B2 (en) Capture and display of historical run-time execution traces in a code editor
CN109739855B (en) Method and system for realizing data sheet splicing and automatically training machine learning model
US8745537B1 (en) Graphical interface for managing and monitoring the status of a graphical model
Yang Graphic user interface modelling and testing automation
US8000952B2 (en) Method and system for generating multiple path application simulations
US20070043547A1 (en) Integrated debugging environment for a network simulation
WO2020163119A1 (en) Using historic execution data to visualize tracepoints
Mathur et al. Idea: an immersive debugger for actors
Coninx et al. Integrating support for usability evaluation into high level interaction descriptions with NiMMiT
Snider et al. Hotline Profiler: Automatic Annotation and A Multi-Scale Timeline for Visualizing Time-Use in DNN Training
Härry Augmenting eclipse with dynamic information
Molnar Live visualization of GUI application code coverage with GUITracer

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170516

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: CONCURIX CORP.

TA01 Transfer of patent application right
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160106

WD01 Invention patent application deemed withdrawn after publication