-
How to make fewer errors at the stage of code writing. Part N4
-
PVS-Studio advertisement - static analysis of C/C++ code
-
PVS-Studio: analyzing ReactOS's code
-
How to make fewer errors at the stage of code writing. Part N3
-
How we test the code analyzer
-
PVS-Studio vs Chromium
-
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by examples of errors detected in five open source projects
-
Difficulties of comparing code analyzers, or don't forget about usability
-
How to make fewer errors at the stage of code writing. Part N2
-
How to make fewer errors at the stage of code writing. Part N1
-
Intel IPP Samples for Windows - error correction
-
Consequences of using the Copy-Paste method in C++ programming and how to deal with it
-
Regular use of static code analysis in team development
-
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defects in 64-bit programs
-
A Collection of Examples of 64-bit Errors in Real Programs
-
Interview with Issam Lahlali, one of the CppDepend tool creators
-
64 bits
-
Changes in programmer tools' infrastructure
-
Static code analysis and the new language standard C++0x
-
VivaCore FAQ
-
32 OpenMP Traps For C++ Developers
-
OpenMP and static code analysis
-
Debugging and optimization of multi-thread OpenMP-programs
-
OpenMP
-
VivaMP - a tool for OpenMP
-
VivaMP, system of detecting errors in the code of parallel C++ programs using OpenMP
-
Interview with Anatoliy Kuznetsov, the author of BitMagic C++ library
-
Comparing PVS-Studio with other code analyzers
-
An unsuccessful attempt to compare PVS-Studio (VivaMP) and Intel C/C++ ("Parallel Lint")
-
64-bit Loki
-
About size_t and ptrdiff_t
-
How to estimate the process of 64-bit migration of C/C++ applications?
-
Safety of 64-bit code
-
Software code metrics
-
Parallel Lint
-
A 64-bit horse that can count
-
Seven Steps of Migrating a Program to a 64-bit System
-
Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)
-
Development of a static code analyzer for detecting errors of porting programs on 64-bit systems
-
Estimation of the minimum time of executing tasks at optimal distribution of load among processors
-
The static code analysis rules for diagnosing potentially unsafe constructions from the viewpoint of 64-bit programs
-
Parallel programs to multi-processor computers!
-
Introduction into 64 bits for the beginners or where's again the 64-bit world?
-
Case Study: Porting a set of point cloud and triangle mesh processing C++ libraries to 64-bit platform
-
Konstantin Knizhnik: static analysis, a view from aside
-
Installation of PC-Lint and its using in Visual Studio 2005
-
Parallel algorithms of data processing
-
Testing parallel programs
-
Optimization of 64-bit programs
-
AMD64 (EM64T) architecture
-
How VivaCore library appeared
-
Detection of vulnerabilities in programs with the help of code analyzers
-
It is difficult
-
Description of VivaVisualCode
-
Comparison of analyzers' diagnostic possibilities at checking 64-bit code
-
Building of systems of automatic C/C++ code logging
-
VivaCore - Quick Start
-
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest
-
Advantages of Viva64
-
Adaptation of the technology of the static code analyzer for developing parallel programs
-
Development of resource-intensive applications in Visual C++
-
Using Static Analysis in Program Development
-
Introduction into the problems of developing parallel programs
-
Brief description of the VivaCore code analysis library
-
The use of the code analysis library OpenC++: modifications, improvements, error corrections
-
The essence of the VivaCore code analysis library
-
Traps detection during migration of C and C++ code to 64-bit Windows
-
Application port to 64-bit platforms or never cackle till your egg is laid
-
The forgotten problems of 64-bit programs development
-
Viva64: What Is It, and Who Is It for?
-
Some examples of the 64-bit code errors
-
Static code analysis for verification of the 64-bit applications
-
Problems of testing 64-bit applications
-
Driver Development for Windows 64-bit
-
20 issues of porting C++ code on the 64-bit platform
-
64-bits for C++ Developers: from /Wp64 to Viva64
-
Viva64: working up of 64-bit applications
-
Peculiarities of the Development of 64-bit Applications
-
PVS-Studio Documentation by OOO "Program Verification Systems" (www.viva64.com)
-
PVS-Studio Documentation (single file)
-
Checking code with PVS-Studio from the command line (with a Visual Studio solution file present)
-
Credits and acknowledgements
-
Limitation of the analyzer
-
OmniSample, a collection of examples of 64-bit and parallel errors
-
Overview
-
Using PVS-Studio with continuous integration systems
-
Using PVS-Studio from the command line (without Visual Studio solution file)
-
PVS-Studio FAQ
-
Getting acquainted with PVS-Studio source code analyzer
-
The principle of constantly using PVS-Studio in the process of project development
-
Common information on working with the PVS-Studio analyzer
-
Registration
-
PVS-Studio Release History
-
Settings: General
-
Settings: Common Analyzer Settings
-
Settings: Detectable Errors
-
Settings: Don't Check Files
-
Settings: Message Suppression
-
Settings: Registration
-
Settings: Viva64
-
Suppression of false alarms
-
System requirements for PVS-Studio analyzer
-
V001. A code fragment from 'file' cannot be analyzed
-
V002. Some diagnostic messages may contain incorrect line number
-
V003. Unrecognized error found
-
V1000. Did you forget to enable the /openmp compiler option?
-
V1001. Missing 'parallel' keyword
-
V1002. Missing 'omp' keyword
-
V1003. Missing 'for' keyword. Each thread will execute the entire loop
-
V1004. Nested parallelization of a 'for' loop
-
V1005. The 'ordered' directive is not present in an ordered loop
-
V1006. Missing omp.h header file. Use '#include <omp.h>'
-
V101. Implicit assignment type conversion to memsize type
-
V102. Usage of non memsize type for pointer arithmetic
-
V103. Implicit type conversion from memsize type to 32-bit type
-
V104. Implicit type conversion to memsize type in an arithmetic expression
-
V105. N operand of '?:' operation: implicit type conversion to memsize type
-
V106. Implicit type conversion N argument of function 'foo' to memsize type
-
V107. Implicit type conversion N argument of function 'foo' to 32-bit type
-
V108. Incorrect index type: 'foo[not a memsize-type]'. Use memsize type instead
-
V109. Implicit type conversion of return value to memsize type
-
V110. Implicit type conversion of return value from memsize type to 32-bit type
-
V1101. Redefining number of threads in a parallel code
-
V1102. Non-symmetrical use of set/unset functions for the following lock variable(s): foo
-
V1103. Threads number dependent code. The 'omp_get_num_threads' function is used in an arithmetic expresion
-
V1104. Redefining nested parallelism in a parallel code
-
V111. Call of function 'foo' with variable number of arguments. N argument has memsize type
-
V112. Dangerous magic number N used
-
V113. Implicit type conversion from memsize to double type or vice versa
-
V114. Dangerous explicit type pointer conversion
-
V115. Memsize type is used for throw
-
V116. Memsize type is used for catch
-
V117. Memsize type is used in the union
-
V118. malloc() function accepts a dangerous expression in the capacity of an argument
-
V119. More than one sizeof() operator is used in one expression
-
V120. Member operator[] of object 'foo' declared with 32-bit type argument, but called with memsize type argument
-
V1201. Concurrent usage of a shared resource via an unprotected call of the 'foo' function
-
V1202. The 'flush' directive should not be used for the 'foo' variable, because the variable has pointer type
-
V1203. Using the 'threadprivate' directive is dangerous, because it affects the entire file. Use local variables or specify access type for each parallel block explicitly instead
-
V1204. Data race risk. Unprotected static variable declaration in a parallel code
-
V1205. Data race risk. Unprotected concurrent operation with the 'foo' variable
-
V1206. Data race risk. The value of the 'foo' variable can be changed concurrently via the 'bar' function
-
V1207. Data race risk. The 'foo' object can be changed concurrently by a non-const function
-
V1208. The 'foo' variable of reference type cannot be private
-
V1209. Warning: The 'foo' variable of pointer type should not be private
-
V121. Implicit conversion of the type of 'new' operator's argument to size_t type
-
V1210. The 'foo' variable is marked as lastprivate but is not changed in the last section
-
V1211. The use of 'flush' directive has no sense for private 'foo' variable, and can reduce performance
-
V1212. Data race risk. When accessing the array 'foo' in a parallel loop, different indexes are used for writing and reading
-
V122. Memsize type is used in the struct/class
-
V123. Allocation of memory by the pattern "(X*)malloc(sizeof(Y))" where the sizes of X and Y types are not equal
-
V1301. The 'throw' keyword cannot be used outside of a try..catch block in a parallel section
-
V1302. The 'new' operator cannot be used outside of a try..catch block in a parallel section
-
V1303. The 'foo' function which throws an exception cannot be used in a parallel section outside of a try..catch block
-
V2001. Consider using the extended version of the 'foo'function here
-
V2002. Consider using the 'Ptr' version of the 'foo' function here
-
V201. Explicit conversion from 32-bit integer type to memsize type
-
V202. Explicit conversion from memsize type to 32-bit integer type
-
V203. Explicit type conversion from memsize to double type or vice versa
-
V301. Unexpected function overloading behavior. See N argument of function 'foo' in derived class 'derived' and base class 'base'
-
V302. Member operator[] of 'foo' class has a 32-bit type argument. Use memsize-type here
-
V303. The function is deprecated in the Win64 system. It is safer to use the 'foo' function
-
Working Mode
-
V004. For a more precise verification, please select x64 or Itanium configuration instead of Win32
-
V124. Function 'Foo' writes/reads 'N' bytes. The alignment rules and type sizes have been changed. Consider reviewing this value
-
V125. It is not advised to declare type 'T' as 32-bit type
-
V126. Be advised that the size of the type 'long' varies between LLP64/LP64 data models
-
V501. There are identical sub-expressions to the left and to the right of the 'foo' operator
-
V502. Perhaps the '?:' operator works in a different way than it was expected. The '?:' operator has a lower priority than the 'foo' operator
-
V503. This is a nonsensical comparison: pointer < 0
-
V504. It is highly probable that the semicolon ';' is missing after 'return' keyword
-
V505. The 'alloca' function is used inside the loop. This can quickly overflow stack
-
V506. Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid
-
V507. Pointer to local array 'X' is stored outside the scope of this array. Such a pointer will become invalid
-
V508. The use of 'new type(n)' pattern was detected. Probably meant: 'new type[n]'
-
V509. The 'throw' operator inside the destructor should be placed within the try..catch block. Raising exception inside the destructor is illegal
-
V510. The 'Foo' function is not expected to receive class-type variable as 'N' actual argument
-
V511. The sizeof() operator returns size of the pointer, and not of the array, in given expression
-
V512. A call of the 'Foo' function will lead to a buffer overflow or underflow
-
V513. Use _beginthreadex/_endthreadex functions instead of CreateThread/ExitThread functions
-
V514. Dividing sizeof a pointer by another value. There is a probability of logical error presence
-
V515. The 'delete' operator is applied to non-pointer
-
V516. Consider inspecting an odd expression. Non-null function pointer is compared to null
-
V517. The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence
-
V518. The 'malloc' function allocates strange amount of memory calculated by 'strlen(expr)'. Perhaps the correct variant is strlen(expr) + 1
-
V519. The 'x' variable is assigned values twice successively. Perhaps this is a mistake
-
V520. The comma operator ',' in array index expression
-
V521. Such expressions using the ',' operator are dangerous. Make sure the expression is correct
-
V522. Dereferencing of the null pointer might take place. Check the logical condition
-
V523. The 'then' statement is equivalent to the 'else' statement
-
V524. It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function
-
V525. The code containing the collection of similar blocks. Check items X, Y, Z, ... in lines N1, N2, N3,
-
V526. The 'strcmp' function returns 0 if corresponding strings are equal. Consider examining the condition for mistakes
-
V527. It is odd that the 'zero' value is assigned to pointer. Probably meant: *ptr = zero
-
V528. It is odd that pointer is compared with the 'zero' value. Probably meant: *ptr != zero
-
V529. Odd semicolon ';' after 'if/for/while' operator
-
V530. The return value of function 'Foo' is required to be utilized
-
V531. It is odd that a sizeof() operator is multiplied by sizeof()
-
V532. Consider inspecting the statement of '*pointer++' pattern. Probably meant: '(*pointer)++'
-
V533. It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'X'
-
V534. It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'
-
V535. The variable 'X' is being used for this loop and for the outer loop
-
V536. Be advised that the utilized constant value is represented by an octal form
-
V537. Consider reviewing the correctness of 'X' item's usage
-
V538. The line contains control character 0x0B (vertical tabulation)
-
V539. Consider inspecting iterators which are being passed as arguments to function 'Foo'
-
V540. Member 'x' should point to string terminated by two 0 characters
-
V541. It is dangerous to print the string into itself
-
V542. Consider inspecting an odd type cast: 'Type1' to ' Type2'
-
V543. It is odd that value 'X' is assigned to the variable 'Y' of HRESULT type
-
V544. It is odd that the value 'X' of HRESULT type is compared with 'Y'
-
V545. Such conditional expression of 'if' operator is incorrect for the HRESULT type value 'Foo'. The SUCCEEDED or FAILED macro should be used instead
-
V801. Decreased performance. It is better to redefine the N function argument as a reference. Consider replacing 'const T' with 'const .. &T' / 'const .. *T'
-
V546. Member of a class is initialized by itself: 'Foo(Foo)'
-
V547. Expression is always true/false
-
V548. Consider reviewing type casting. TYPE X[][] in not equivalent to TYPE **X
-
V549. The 'first' argument of 'Foo' function matches it's the 'second' argument
-
V005. Cannot determine active configuration for project. Please check projects and solution configurations
-
V550. An odd precise comparison. It's probably better to use a comparison with defined precision: fabs(A - B) < Epsilon or fabs(A - B) > Epsilon
-
V551. The code under this 'case' label is unreachable
-
V552. A bool type variable is being incremented. Perhaps another variable should be incremented instead
-
V553. The length of function's body or class's declaration is more than 2000 lines long. You should consider refactoring the code
-
V554. Incorrect use of smart pointer
-
V555. The expression of the 'A - B > 0' kind will work as 'A != B'
-
V556. The values of different enum types are compared
-
V557. Array overrun is possible
-
V558. Function returns the pointer to temporary local object
-
V802. On 32-bit/64-bit platform, structure size can be reduced from N to K bytes by rearranging the fields according to their sizes in decreasing order
-
V006. File cannot be processed. Analysis aborted by timeout
-
V559. Suspicious assignment inside the condition expression of 'if/while/for' operator
-
V560. A part of conditional expression is always true/false
-
V561. It's probably better to assign value to 'foo' variable than to declare it anew
-
V562. It's odd to compare a bool type value with a value of N
-
V204. Explicit conversion from 32-bit integer type to pointer type
-
V205. Explicit conversion of pointer type to 32-bit integer type
-
V563. It is possible that this 'else' branch must apply to the previous 'if' statement
-
V564. The '&' or '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '&&' or '||' operator
-
V565. An empty exception handler. Silent suppression of exceptions can hide the presence of bugs in source code during testing
-
V566. The integer constant is converted to pointer. Possibly an error or a bad coding style
-
V567. Undefined behavior. The variable is modified while being used twice between sequence points
-
V568. It's odd that the argument of sizeof() operator is the expression
-
V569. Truncation of constant value
-
V803. Decreased performance. It is more effective to use the prefix form of ++it. Replace iterator++ with ++iterator
-
Settings: Customers Specific Settings
-
V007. Verification of CLR projects is not implemented. Incorrect diagnostics are possible
-
V570. The variable is assigned to itself
-
V571. Recurring check. This condition was already verified in previous line
-
V572. It is odd that the object which was created using 'new' operator is immediately casted to another type
-
V804. Decreased performance. The 'Foo' function is called twice in the specified expression to calculate length of the same string
-
V220. Suspicious sequence of types castings: memsize -> 32-bit integer -> memsize
-
V573. Uninitialized variable 'Foo' was used. The variable was used to initialize itself
-
V574. The pointer is used simultaneously as an array and as a pointer to single object
-
V575. Function receives an odd argument
-
V576. Incorrect format. Consider checking the N actual argument of the 'Foo' function
-
V577. Label is present inside a switch(). It is possible that these are misprints and 'default:' operator should be used instead
-
V578. An odd bitwise operation detected. Consider verifying it
-
V805. Decreased performance. It is inefficient to identify an empty string by using 'strlen(str) > 0' construct. A more efficient way is to check: str[0] != '\0'
-
V127. An overflow of the 32-bit variable is possible inside a long cycle which utilizes a memsize-type loop counter
-
V579. The 'Foo' function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the N argument
-
V580. An odd explicit type casting. Consider verifying it
-
V581. The conditional expressions of the 'if' operators situated alongside each other are identical
-
V582. Consider reviewing the source code which operates the container
-
Predefined PVS_STUDIO macro
-
V583. The '?:' operator, regardless of its conditional expression, always returns one and the same value
-
V584. The same value is present on both sides of the operator. The expression is incorrect or it can be simplified
-
V585. An attempt to release the memory in which the 'Foo' local variable is stored
-
V586. The 'Foo' function is called twice for deallocation of the same resource
-
V587. An odd sequence of assignments of this kind: A = B; B = A;
-
V806. Decreased performance. The expression of strlen(MyStr.c_str()) kind can be rewritten as MyStr.length()
-
V588. The expression of the 'A =+ B' kind is utilized. Consider reviewing it, as it is possible that 'A += B' was meant
-
V589. The expression of the 'A =- B' kind is utilized. Consider reviewing it, as it is possible that 'A -= B' was meant
-
V590. Consider inspecting this expression. The expression is excessive or contains a misprint
-
V591. Non-void function should return a value
-
V592. The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present
-
V593. Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'
-
V008. Unable to start the analysis on this file
-
V2003. Explicit conversion from 'float/double' type to signed integer type
-
V2004. Explicit conversion from 'float/double' type to unsigned integer type
-
V2005. C-style explicit type casting is utilized. Consider using: static_cast/const_cast/reinterpret_cast
-
Handling the diagnostic messages list
-
V009. Intel C++ project toolset is not supported. Select Visual C++ toolset to verify this project
-
V594. The pointer steps out of array's bounds
-
V595. The pointer was utilized before it was verified against nullptr. Check lines: N1, N2
-
V596. The object was created but it is not being used. The 'throw' keyword could be missing
-
Old PVS-Studio Release History (before 4.00)
-
V597. The compiler could delete the 'memset' function call, which is used to flush 'Foo' buffer. The RtlSecureZeroMemory() function should be used to erase the private data
-
V598. The 'memset/memcpy' function is used to nullify/copy the fields of 'Foo' class. Virtual method table will be damaged by this
-
V599. The virtual destructor is not present, although the 'Foo' class contains virtual functions
-
V600. Consider inspecting the condition. The 'Foo' pointer is always not equal to NULL
-
V601. An odd implicit type casting
-
Tips on speeding up PVS-Studio
-
V602. Consider inspecting this expression. '<' possibly should be replaced with '<<'
-
V603. The object was created but it is not being used. If you wish to call constructor, 'this->Foo::Foo(....)' should be used
-
V807. Decreased performance. Consider creating a pointer/reference to avoid using the same expression repeatedly
-
PVS-Studio menu commands
-
Dug Song. Static Code Analysis Using Google Code Search
-
Jack Ganssle. The value proposition - unfulfilled
-
Jose F. Ruiz. Don't blow your stack: Static stack analysis for high-integrity systems
-
List of tools for static code analysis
-
Nick Wienholt. Get to Know the VSTS Native C/C++ Code Analyzer
-
Parasoft Corporation. Static Analysis on Steroids: Parasoft BugDetective
-
Raoul Jetley, Paul Anderson. Using static analysis to evaluate software in medical devices
-
Roel Wuyts. C++ analysis tools
-
Scott Meyers, Martin Klaus. A First Look at C++ Program Analyzers
-
Sergei Sokolov. Bulletproofing C++ Code
-
Static code analysis (Wikipedia)
-
Steve Gutz. Static analysis IBM Rational Software Analyzer: Getting started
-
Steven Lavenhar. Code Analysis
-
Walter W. Schilling, Jr. and Mansoor Alam. Integrate Static Analysis Into a Software Development Process
-
Walter W. Schilling, Jr., Mansoor Alam. Integrate static analysis into a software development process
-
Sid Sidner. When Quality, Security Count
-
Michael Suess, M. Sub, Claudia Leopold. Common Mistakes in OpenMP and How To Avoid Them - A Collection of Best Practices
-
Nawal Copty. Introducing OpenMP: A Portable, Parallel Programming API for Shared Memory Multiprocessors
-
Kang Su Gatlin, Pete Isensee. Reap the Benefits of Multithreading without All the Work.
-
Yuan Lin. Common Mistakes in Using OpenMP 5: Assuming Non-existing Synchronization Before Entering Worksharing Construct.
-
HPCBugBase.
-
Michael Suess, M. Sub, A. Podlich, Claudia Leopold. Problems, Workarounds and Possible Solutions Implementing the Singleton Pattern with C++ and OpenMP.
-
Michael Suess, M. Sub, Claudia Leopold. A Comparison of Task Pool Variants in OpenMP and a Proposal for a Solution to the Busy Waiting Problem.
-
Eric Niebler. Trip Report: Ad-Hoc Meeting on Threads in C++.
-
Michael Suess. Why OpenMP is the way to go for parallel programming.
-
Michael Suess. What Makes Parallel Programming Hard?
-
Anwar Ghuloum. What Makes Parallel Programming Hard?
-
Michael Suess, Claudia Leopold. A User's Experience with Parallel Sorting and OpenMP.
-
Michael Suess, M. Sub, Claudia Leopold. Implementing Irregular Parallel Algorithms with OpenMP.
-
Ruud van der Pas. Using OpenMP to parallelize for CMT.
-
Michael Suess. Scoped locking vs. critical in OpenMP - a personal shootout.
-
Michael Suess. Parallel Programming Fun with Loop Carried Dependencies.
-
Herb Sutter. The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
-
Michael Suess, M. Sub, Claudia Leopold. Evaluating the state of the art of parallel programming systems.
-
Michael Suess. How to do it ONCE in OpenMP...
-
Vineet Kumar Jain. OpenMP: unleashing power of multiple cores
-
Rahul V. Patil and Boby George. Tools And Techniques to Identify Concurrency Issues
-
Rick Merritt. M'soft: Parallel programming model 10 years off
-
John E. West. Making 'Parallel Programming' Synonymous with 'Programming
-
Joel Yliluoma. Guide into OpenMP: Easy multithreading programming for C++
-
Nawal Copty. OpenMP Support in Sun Studio Compilers and Tools
-
Jim Dempsey. Affinities and Opportunistic Thread Scheduling
-
Jack Woehr. A == !A or What Happened to my App?
-
Meisel, Jeff. Multithreaded programming
-
Clay P. Breshears. Intel Threading Tools and OpenMP
-
Introduction to OpenMP
-
Kerry D. Wong. Matrix Multiplication Performance in C++
-
Richard Gerber. Advanced OpenMP Programming
-
Herb Sutter. Use Threads Correctly = Isolation + Asynchronous Messages
-
Parallelizing N-Queens with the Intel Parallel Composer
-
OpenMP FAQ
-
Christian Terboven. How to kill OpenMP by 2011 ?!
-
Deadline. Multi-core Strategies: MPI and OpenMP
-
Matt Pietrek. Everything You Need To Know To Start Programming 64-Bit Windows Systems
-
John Paul Mueller. 24 Considerations for Moving Your Application to a 64-bit Platform
-
Microsoft Game Technology Group. 64-bit programming for Game Developers
-
Tim Mangan. Porting C++ Applications to x64
-
64-Bit Programming Models: Why LP64
-
Andrew Josey. Data Size Neutrality and 64-bit Support
-
64-bit Insider Volume 1, Issues 1-12
-
Jeremy Gordon, Writing 64-bit programs
-
Alan Zeichick. A Linux Toolbox for AMD64 Developers
-
Stan Murawski. Beyond Windows XP: Get Ready Now for the Upcoming 64-Bit Version of Windows
-
Brad Martin, Anita Rettinger, and Jasmit Singh. Multiplatform Porting to 64 Bits
-
Harsha Jagasia. Performance Guidelines for Developers on AMD Athlon 64 and Opteron ccNUMA Multiprocessor Systems Running Microsoft Windows
-
Anderson Bailey. AMD64 and the New Math
-
Building AMD64 Applications with the Microsoft Platform SDK
-
Conrad Carter. C/C++ Compiler Switches for Fast, Portable 64-Bit Code
-
Configuring Microsoft Visual Studio Projects to Support the AMD64 Architecture
-
John Paul Mueller. Discovering the 64-bit Tools in Visual Studio 2005
-
Porting an Application to 64-bit Linux on HP Integrity Servers
-
Mike Wall. Porting and Optimizing Applications on 64-bit Windows for AMD64 Architecture
-
Mike Wall. Porting Applications to Windows for AMD64 Technology
-
Harsha S. Adiga. Porting Linux applications to 64-bit systems
-
Allan McNaughton. Porting Linux Applications to 64-Bit Intel Architecture
-
Rich Newman. Removing Memory Errors from 64-Bit Platforms
-
Sachin R Sangoi. The 64 bit OS Architecture
-
John R. Mashey. The Long Road to 64 Bits
-
Allan McNaughton. The One-Stop Shop for 64-bit Development
-
Kang Su Gatlin. Windows Data Alignment on IPF, x86, and x64
-
Gregory Tarsy and Neil Toda. Floating-Point Computing: A Comedy of Errors?
-
Allan McNaughton. Bridge the Gap Between 32- and 64-bit Applications
-
Converting 32-bit Applications Into 64-bit Applications: Things to Consider
-
Andy Patrizio. How and Why Microsoft Migrated to AMD64: Case Study
-
Migrating 32-bit Managed Code to 64-bit
-
Porting 32-Bit Code to 64-Bit Code
-
Harsha Jaquasia. Porting and Optimizing Multimedia Codecs for AMD64 architecture on Microsoft Windows
-
Anderson Bailey. Tools and Techniques for Developing 64-Bit Linux Software
-
The Old New Thing: The history of calling conventions, part 5: amd64
-
The Old New Thing: Why did the Win64 team choose the LLP64 model?
-
Matt Tyrlik, Making the transition to 64 bits
-
Daniel Pistelli, Moving to Windows Vista x64
-
Eric Palmer, "CPUID for x64 Platforms and Microsoft Visual Studio .NET 2005"
-
Andrew Binstock. Porting to 64-Bit Intel Architecture
-
Steven J. Vaughan-Nichols. Why Software Development Is Lagging Hardware Improvements
-
Bruno Terkaly. 64-Bit Programming with Visual C++
-
Mike Becker. Accessing 32-bit DLLs from 64-bit code
-
Dan Saks. Why size_t matters
-
Fast forward VS6 64 bit
-
32-bit pointers in a 64-bit world
-
Visual C++ 2008 Express Edition And 64-Bit Targets
-
64-bit ODBC
-
Kenny Kerr. Windows With C++. X64 Debugging With Pseudo Variables And Format Specifiers
-
Eric Lippert's Blog. "Out Of Memory" Does Not Refer to Physical Memory
-
Checklist for 64-bit Microsoft Windows Drivers
-
Shih Kuo. Intel® 64 Architecture Processor Topology Enumeration
-
Microsoft Corporation. Best Practices for WOW64
-
Microsoft Corporation. 64-bit System Design
-
Irving Rabin. Porting to 64-bit Platforms
-
Alex Ionescu. Behind Windows x64's 44-bit Virtual Memory Addressing Limit
-
Walter Bright. Patterns of Bugs
-
Philip J. Guo, Dawson Engler. Linux Kernel Developer Responses to Static Analysis Bug Reports
-
Gary McGraw, John Steven. Software [In]security: Comparing Apples, Oranges, and Aardvarks (or, All Static Analysis Tools Are Not Created Equal)
-
Microsoft. Using Code Analysis with Visual Studio 2010 to Improve Code Quality
-
Guy Steele. How to Think about Parallel Programming: Not!
-
ESET Team. TDSS (part 1: The x64 Dollar Question)
-
C++ Static Analysis
-
The Coverity Team. A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World
-
Aditya Pratap Bhuyan. Code Review Principles, Process and Tools
-
Adam Kolawa. When, Why, and How: Code Analysis
-
Eli Bendersky. Stack frame layout on x86-64
-
Bojan Komazec. 32-bit and 64-bit versions of Windows C++ application
-
Jim Bird. Static Analysis isn't Development Testing
-
Ajay Vijayvargiya. Elucidating all about Code Analysis in Visual C++
-
David Cerezo Sánchez. Static vs. Formal Methods for Code Auditing
-
Pierre Morel-Fourrier. C++ code analysis in Visual Studio 2012