ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب The developer's guide to debugging

دانلود کتاب راهنمای توسعه دهنده برای اشکال زدایی

The developer's guide to debugging

مشخصات کتاب

The developer's guide to debugging

ویرایش:  
نویسندگان: ,   
سری:  
ISBN (شابک) : 9781402055409, 1402055404 
ناشر: Springer 
سال نشر: 2007 
تعداد صفحات: 230 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 3 مگابایت 

قیمت کتاب (تومان) : 46,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 6


در صورت تبدیل فایل کتاب The developer's guide to debugging به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب راهنمای توسعه دهنده برای اشکال زدایی نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

Contents......Page 11
1. You Write Software; You have Bugs......Page 18
2.2 Making the Most of Your Opportunities......Page 21
2.3 13 Golden Rules......Page 23
2.3.2 Make it Fail......Page 24
2.3.5 Check the Plug......Page 25
2.3.6 Separate Facts from Interpretation......Page 26
2.3.10 Keep an Audit Trail......Page 28
2.3.13 Cover your Bugfix with a Regression Test......Page 29
2.4 Build a Good Toolkit......Page 30
2.4.2 Running Tests Every Day Keeps the Bugs at Bay......Page 31
2.5.1 The Common Bug......Page 33
2.5.3 Heisenbugs......Page 34
2.5.4 Bugs Hiding Behind Bugs......Page 35
2.5.5 Secret Bugs – Debugging and Confidentiality......Page 36
2.5.6 Further Reading......Page 37
3.1 Visualizing Program Behavior......Page 38
3.3 Get the Debugger to Run with Your Program......Page 39
3.4 Learn to do a Stack Trace on a Program Crash......Page 42
3.6 Learn to Navigate Through the Program......Page 43
3.7 Learn to Inspect Data: Variables and Expressions......Page 44
3.8 A Debug Session on a Simple Example......Page 45
4.1 Memory Management in C/C++ – Powerful but Dangerous......Page 48
4.1.4 Uninitialized Memory Bugs......Page 49
4.2 Memory Debuggers to the Rescue......Page 50
4.3.1 Detecting an Invalid Write Access......Page 51
4.3.2 Detecting Uninitialized Memory Reads......Page 52
4.4 Example 2: Broken Calls to Memory Allocation/Deallocation......Page 53
4.6 Cutting Down the Noise – Suppressing Errors......Page 55
4.7 When to Use a Memory Debugger......Page 56
4.8.4 Support for Non-standard Memory Handlers......Page 57
5.1 Basic Strategy – The First Steps......Page 59
5.3 Step 1: Look for Leaks......Page 60
5.5 Step 3: Measure Memory Consumption......Page 61
5.5.2 Stopping the Program at Regular Intervals......Page 62
5.5.4 Use top......Page 63
5.5.5 Use the Windows Task Manager......Page 64
5.5.7 Determine how Memory is Deallocated on Your Machine......Page 65
5.5.8 Use a Memory Profiler......Page 67
5.6 Step 4: Identifying Greedy Data Structures......Page 68
5.7 Putting it Together – The genindex Example......Page 69
5.7.2 Estimate the Expected Memory Use......Page 70
5.7.4 Find the Data Structures that Consume Memory......Page 71
6.1 Finding Performance Bugs – A Step-by-Step Approach......Page 76
6.1.2 Use a Simple Method of Measuring Time......Page 77
6.1.4 Make the Test Case Reproducible......Page 78
6.1.6 Make the Test Case Scalable......Page 79
6.1.7 Isolate the Test Case from Side Effects......Page 80
6.1.9 Select a Test Case that Exposes the Runtime Bottleneck......Page 81
6.1.10 The Difference Between Algorithm and Implementation......Page 83
6.2.1 Do Not Write Your Own Profiler......Page 85
6.2.2 How Profilers Work......Page 86
6.2.3 Familiarize Yourself with gprof......Page 87
6.2.4 Familiarize Yourself with Quantify......Page 92
6.2.5 Familiarize Yourself with Callgrind......Page 94
6.2.6 Familiarize Yourself with VTune......Page 95
6.3 Analyzing I/O Performance......Page 97
6.3.1 Do a Sanity Check of Your Measurements......Page 98
7.1 Writing Parallel Programs in C/C++......Page 100
7.2 Debugging Race Conditions......Page 101
7.2.1 Using Basic Debugger Capabilities to Find Race Conditions......Page 102
7.2.2 Using Log Files to Localize Race Conditions......Page 104
7.3 Debugging Deadlocks......Page 106
7.3.1 How to Determine What the Current Thread is Executing......Page 107
7.3.2 Analyzing the Threads of the Program......Page 108
7.4 Familiarize Yourself with Threading Analysis Tools......Page 109
7.5 Asynchronous Events and Interrupt Handlers......Page 111
8.1.1 Environment Variables......Page 113
8.1.4 Process ID Dependency......Page 114
8.2.2 Finding Multiple Processes of an Application with ps......Page 115
8.2.4 Use strace to Trace Calls to the OS......Page 116
8.3.1 Compiler Bugs......Page 118
8.3.2 Debugger and Compiler Compatibility Problems......Page 119
9.1 How a Linker Works......Page 121
9.2 Building and Linking Objects......Page 122
9.3.1 Missing Linker Arguments......Page 123
9.3.2 Searching for Missing Symbols......Page 124
9.3.3 Linking Order Issues......Page 125
9.3.4 C++ Symbols and Name Mangling......Page 126
9.3.6 Linking C and C++ Code......Page 127
9.4 Symbols with Multiple Definitions......Page 128
9.5 Symbol Clashes......Page 129
9.6 Identifying Compiler and Linker Version Mismatches......Page 130
9.6.2 Mismatching Object Files......Page 131
9.6.4 Determining the Compiler Version......Page 132
9.7.1 Linking or Loading DLLs......Page 134
9.7.2 DLL Not Found......Page 136
9.7.3 Analyzing Loader Issues......Page 137
9.7.4 Setting Breakpoints in DLLs......Page 138
9.7.5 Provide Error Messages for DLL Issues......Page 139
10.1 Setting Breakpoints in C++ Functions, Methods, and Operators......Page 141
10.2 Setting Breakpoints in Templatized Functions and C++ Classes......Page 143
10.3 Stepping in C++ Methods......Page 145
10.3.1 Stepping into Implicit Functions......Page 146
10.3.2 Skipping Implicit Functions with the Step-out Command......Page 147
10.3.4 Returning from Implicit Function Calls......Page 148
10.4 Conditional Breakpoints and Breakpoint Commands......Page 149
10.5.1 Bugs Due to Order-Dependence of Static Initializers......Page 152
10.5.2 Recognizing the Stack Trace of Static Initializers......Page 153
10.5.3 Attaching the Debugger Before Static Initialization......Page 154
10.6 Using Watchpoints......Page 155
10.7 Catching Signals......Page 156
10.8 Catching Exceptions......Page 159
10.9.1 Stack Trace of Source Code Compiled with Debug Information......Page 160
10.9.3 Frames Without Any Debug Information......Page 161
10.9.4 Real-Life Stack Traces......Page 162
10.9.6 Broken Stack Traces......Page 163
10.9.7 Core Dumps......Page 164
10.10 Manipulating a Running Program......Page 165
10.10.2 Calling Functions......Page 168
10.10.4 Aborting Function Calls......Page 169
10.10.5 Skipping or Repeating Individual Statements......Page 170
10.10.6 Printing and Modifying Memory Content......Page 171
10.11 Debugging Without Debug Information......Page 173
10.11.1 Reading Function Arguments From the Stack......Page 175
10.11.3 Finding the Approximate Statement in the Source Code......Page 177
10.11.4 Stepping Through Assembly Code......Page 178
11.1 Why Comments Count......Page 180
11.1.1 Comments on Function Signatures......Page 181
11.2.1 Choose Names Carefully......Page 182
11.2.4 Use Temporary Variables for Complex Expressions......Page 183
11.3.1 Use Constants or Enums Instead of Macros......Page 184
11.3.2 Use Functions Instead of Preprocessor Macros......Page 186
11.3.3 Debug the Preprocessor Output......Page 187
11.3.4 Consider Using More Powerful Preprocessors......Page 188
11.4.1 Displaying User-Defined Data Types......Page 190
11.4.2 Self-Checking Code......Page 191
11.5.1 Generate Log Files......Page 192
12.1 Using Compilers as Debugging Tools......Page 194
12.1.1 Do not Assume Warnings to be Harmless......Page 195
12.2 Using lint......Page 197
12.3.1 Familiarize Yourself with a Static Checker......Page 198
12.3.2 Reduce Static Checker Errors to (Almost) Zero......Page 200
12.4 Beyond Static Analysis......Page 201
13. Summary......Page 202
A. Debugger Commands......Page 203
B.1.1 Microsoft Visual Studio......Page 205
B.2.1 dbx......Page 206
B.2.6 Lauterbach TRACE32......Page 207
B.4.1 Purify......Page 208
B.4.4 Insure++......Page 209
B.5.3 Intel VTune......Page 210
B.6.2 Lint......Page 211
B.6.6 Fortify......Page 212
B.6.11 C++ SoftBench CodeAdvisor......Page 213
B.7.2 OpenMP......Page 214
B.7.6 Intel Threading Analysis Tools......Page 215
B.8.3 ps......Page 216
B.8.7 WebEx......Page 217
C.1 testmalloc.c......Page 218
C.2 genindex.c......Page 219
C.3 isort.c......Page 223
C.4 filebug.c......Page 225
References......Page 226
C......Page 227
F......Page 228
L......Page 229
Q......Page 230
T......Page 231
X......Page 232




نظرات کاربران