restrictions on the Content of configure files. Automake also supports the use of generated documents with texinfo, and also supports Emacs lisp, gettext, libtool, Java, and python. Automake requires Perl support when generating a. In file.
Bash
BC
Bfd-2.9.1
Binutils
Bison
Cfengine
Coreutils
CVS
Dc-1.05
Ddd
Dejarnu
Diffutils
Elisp-Manual
Emacs
Emacs-lisp-intro
Fileutils
Findutils
Finger
Flex
Gas-2.9.1
Gawk
GDB
Gcc
Gettext
Gleem
Glibc
Glib
Turn: http://egamesir.blog.163.com/blog/static/188096088201191225258163? Suggestedreading wumii
Fun!
DebuggersDebugging Tools for WindowsHttp://www.microsoft.com/whdc/devtools/debugging/default.mspx/
Source code controlTortoiseCVSHttp://www.tortoisecvs.org/CVSGuiHttp://www.wincvs.org/
CPU Performance AnalyzerAt the end of the development process, you need to optimize your code and solve the bottleneck. the following tools can help you find the bottleneck and find out the time and memory occupie
StructureMacros and inline functionsSlow computingReduce temporary variablesCache String LengthUnnecessary memset4) Utilization of hardware featuresByte alignmentShift and multiplication and division 2Performance hotspot implemented by Assembly4. Performance analysis tool-callgrindValgrind is the most common tool in linux because it is free of charge. Callgrind is a member of the valgrind tool. Its main function is to simulate the cpu cache, which can compute multipleLevel cache validity, numbe
://cznic.dl.sourceforge.net/project/oprofile/oprofile/oprofile-1.0.0/oprofile-1.0.0.tar.gztar-zxvf oprofile-1.0.0.tar.gzcd oprofile-1.0.0. /configuremakemake ins Tall 3. tool set ophelp: list all supported events. Opcontrol: Set the events to be collected. Opreport: outputs statistical results. Opannaotate: generates source/assembly files with annotations. Source Language-level annotations must be supported when source files are compiled. Opstack: generate the call graph profile, but the x86/2.6
String LengthUnnecessary memset4) Utilization of hardware featuresByte alignmentShift and multiplication and division 2Performance hotspot implemented by Assembly4. Performance analysis tool-callgrindValgrind is the most common tool in Linux because it is free of charge. Callgrind is a member of the valgrind tool. Its main function is to simulate the CPU cache, which can compute multipleLevel cache validity, number of failures, and time consumption of each function call.The implementation mecha
Reference
Use the finstrument-functions _ attribute _ + graphviz visual function to call the GCC function.
IBM graphviz visualized function call
Gcc/g ++ uses-finstrument-functions to check the call of each function of the Code
Http://www.logix.cz/michal/devel/CygProfiler/cyg-profile.c.xp
Http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Code-Gen-Options.html#Code-Gen-Options official parameter description
Index
Introduction
C
C ++
Finstrument-functions-exclude-funct
during the compilation process will be very helpful, as shown in the following figure:# Gcc-save-temps Foo. C-o foo# Ls Foo *Foo. c Foo. I Foo. sOther debugging options supported by GCC include-P and-PG, which add profiling information to the final binary code. Profiling is helpful for identifying program performance bottlenecks and a powerful tool to help Linux programmers develop high-performance programs. When the-P option is added during compilation, statistical information that can be reco
", eclipse will display the methods called by this method, and ultimately generate a call relationship tree.
5. Alt + Shift + Q, T
This is used for display. You can drag any function in the above call hierarchy to this Panel to analyze the class call relationship and generate a class hierarchy.
With the macro UML and the micro function call relationship, we can generally better understand the source code.
There are also some other software (I have not used most of it), which may be useful her
, paddsb, paddsw, paddusb, Baidu, psubb, psubw, psubd, psubsb, psubsw, psubusb, psubusb, psubusw, pmulhw, Baidu, and Baidu
Parallel comparison: pcmpeqb, pcmpeqw, pcmpeqd, pcmpgtb, pcmpgtw, pcmpgtd
Parallel Logic: pand, pandn, por, pxor
Shift and rotation: psllw, pslld, psllq, psrlw, psrld, psrscsi, psraw, psrad
Status Management: Emms
In addition to functions, these commands also need to pay attention to the data types to be processed. The above content is the background. For details, refer
There are three common memory leaks in C/C ++:
1. After malloc and realloc, they forget free; after new, they forget Delete; after new [], they forget Delete [].
2. Use the count method to manage the memory. The two count pointers direct to each other, leading to memory leakage.
3. Place the allocated and used memory in the container.
Among them, the memory leakage method in 3rd also exists in languages such as Java and C # That automatically release the memory.
The following is an example of
The functions of the Arm-linux tool are as follows:Arm-linux-addr2line converts the program address to the file name and line number. Give it an address and an executable file name on the command line, and it will use the debug information of the executable to indicate which file and line number are on the given address.Arm-linux-ar Create, modify, and extract archive files. An archive is a large file that contains multiple file contents, and its structure ensures that the original file contents
by Falcon of tinylab.org2015/04/18ReasonSource code analysis is a topic that programmers can not leave.Whether it is research open source projects, or usually do all kinds of transplant, development, can not avoid the deep interpretation of the source code.工欲善其事, its prerequisite.The first two articles describe the dynamic analysis of static and application parts. Here we begin to discuss how to dynamically analyze the Linux kernel section.Preparation work FtraceSimilar to the user-state
:[Email protected] src]# As-o CPUID.O Cpuid.s[Email protected] src]# ld Cpuid.o-o CPUID[Email protected] src]#./cpuidThe processor Vendor ID is ' Genuineintel '[Email protected] src]#My computer is Pentium M CPU, so the result returned is Genuineintel.A few notes:1) Linux Standard assembly environment for As,ld,gdb,gprof,objdump and other GNU development debugging tools, in addition to GDB, all the others with the Binutils package release. Where as is
Recently work learned a lot of new things under Linux, the following tools are mainly for C + +, later slowly add some useful tools.Editor
Vim
Emacs
Kate (KDE's next powerful editor)
IDE (Integrated development environment)
Eclipse+cdt
Clion
QT Cteator
Compiler
Gcc
g++
Clang
Debugger
Gdb
Build tools
CMake
Make
Memory Tools
Purify
Valgrind Tool Set
.
Netstat
Displays various network-related information, including network connectivity, routing tables, Interface states (Interface Statistics), masquerade connections, multicast members (multicast memberships), and so on. In fact, Netstat is used to display statistics related to IP, TCP, UDP, and ICMP protocols, and is typically used to verify the network connectivity of each port on the machine.
Time
Detects a command run time and the use of resources (C
system call number, EBX to write the file descriptor, ECX string first address, edx string length, the program in the values of these parameters are 4, respectively, 1 (standard output), output address and 42. The last call to the 1th system call-Exit function, return to the shell, the value in this ebx is returned to the shell exit code, 0 means no exception
Then assemble the connection to run the program:
[Root@zieckey-laptop src]# as-o cpuid.o Cpuid.s
[Root@zieckey-laptop src]# ld Cpuid.o-
generated in GPROF format
Opstack: Generates call Graph profile, but requires x86/2.6 platform, and linux2.6 installed Call-graph patch
Oparchive: Pack All the raw data files, and then analyze them on another machine.Op_import: Converts the sampled database file from another ABI to a local format.
Running oprofile requires root permission because it loads the profile module, starts the oprofiled daemon, and so on. So before you run, you need to swit
Execution CMake can generate makefile files and some intermediate files, CMake has both internal and external construction operations, the proposed external build, keep the code clean, the project directory structure is clear.
CMake. Represents building the system based on the rules established in the file CMakeLists.txt in the current directory and generating makefile files in the current directory. "Within Build"
CMake.. Represents building the system and generating makefile files in the cur
kernel, the compiler is ARM-LINUX-GNUEABIHF-GCC, and the GNU Gprof is used to get the algorithm execution time.
3.2 Performance Test
The performance of parallel optimization is analyzed by using the method of calculating speedup, as shown in the following formula the higher the acceleration ratio, the higher the parallelism of the algorithm is, the lowest is 1. Performance testing employs 4 algorithmic versions, including serial versions, parallel 2
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.