دانلود کتاب The Art of Debugging with GDB, DDD, and Eclipse (به فارسی: هنر اشکال زدایی با GDB، DDD و Eclipse) نوشته شده توسط «Norman Matloff – Peter Jay Salzman»
اطلاعات کتاب هنر اشکال زدایی با GDB، DDD و Eclipse
موضوع اصلی: کامپیوترها
نوع: کتاب الکترونیکی
ناشر: No Starch Press
نویسنده: Norman Matloff – Peter Jay Salzman
زبان: english
فرمت کتاب: PDF (قابل تبدیل به سایر فرمت ها)
سال انتشار: 2008
تعداد صفحه: 278
حجم فایل: 4.66 مگابایت
کد کتاب: 1593271743 , 9781593271749
نوبت چاپ: 1
توضیحات کتاب هنر اشکال زدایی با GDB، DDD و Eclipse
من باید اول پاک باشم – نویسندگان را می شناسم. پیتر از من خواست که یکی از بخشهای کتاب را سالها پیش، زمانی که کتاب در مراحل ابتدایی خود بود، مرور کنم. کتاب از آن زمان تاکنون پیشرفت زیادی کرده است، و باید اعتراف کنم که این بسیار بیشتر از آن چیزی است که از کتابی در مورد اشکال زدایی انتظار داشتم!
فصلهای 1 تا 3 فصلهای آغازینی هستند که پارادایمهای اصلی اشکال زدایی مانند نقاط شکست و تحلیل متغیرها را مورد بحث قرار میدهند. فصل 1 برخی از مفاهیم اساسی اشکال زدایی را برای کسانی که تازه با این ایده آشنا شده اند (مثلاً علاقه مندان و برنامه نویسانی که تازه از دانشگاه خارج شده اند) را مرور می کند، اما احتمالاً برای کسانی که قبلاً با این مفهوم آشنا هستند کمتر مفید است. فصل 2 عملیات اصلی اشکال زدایی مانند تعیین نقاط شکست و تجزیه و تحلیل متغیرها را با تأکید بر نحوه تنظیم، پاک کردن و راه اندازی نقاط شکست با استفاده از روش های مختلف می پردازد. فصل 3 بیشتر در مورد نحوه مشاهده و نمایش متغیرهای حافظه های مختلف توضیح می دهد.
فصل 4 و 5 جایی است که چیزها شروع به جالب شدن می کنند. فصل 4 چگونگی استفاده از دیباگر را برای تجزیه و تحلیل موارد خالی اصلی مورد بحث قرار می دهد و مفاهیم سیستم عامل را به اندازه کافی برای کسانی که با معماری سیستم عامل آشنایی ندارند در اشکال زدایی مفید می باشد. فصل 5 اشکال زدایی برنامه های threaded را مورد بحث قرار می دهد. به عنوان مثال، برنامههایی که با استفاده از کتابخانههای چند رشتهای و چند فرآیندی محبوب نوشته شدهاند، مانند pthread، MPI، و OpenMP مورد بحث قرار میگیرند که این فصل را کاربردیتر میکند.
فصل 6 فصل جالبی است. بخش 6.1 برخی از پیام های خطای رایج کامپایلر و نحوه تفسیر آنها را بررسی می کند. آنها مفاهیمی هستند که همه دانشجویان ترم اول دوره برنامه نویسی باید بخوانند. برای برنامه نویسان مبتدی باید قبل از فصل 1 یا بلافاصله بعد از آن خوانده شود، اما برای برنامه نویسان باتجربه ای که به طور روزانه از آنچه در این بخش بحث می شود بدون اینکه فکر دیگری به ذهنشان خطور می کند می گذرانند، همچنین یک بخش سرگرم کننده است. بخش 6.2 باید برای هر کسی که موهایشان خاکستری شده است برای رفع اشکال برنامه های Curses یا NCurses تحت UNIX مفید باشد.
فصل 7 ترفندهای مختلفی را که برنامه نویسان برای نوشتن برنامه های باگ کمتر استفاده می کنند، مورد بحث قرار می دهد. بیشتر اینها مفاهیم شناخته شده ای هستند که به ندرت در کلاس آموزش داده می شوند – ترفندهای Vim برای مطابقت پرانتز، برجسته سازی نحو، استفاده از errno و خطا، کتابخانه هایی برای گرفتن سرریزهای بافر و غیره. ذکر دستورالعمل __LINENO__ به طور عجیبی در این فصل وجود ندارد، و من من مطمئن نیستم که این روزها چقدر پرز مفید است، اما این فصل به همان اندازه که انتظار می رود کامل به نظر می رسد. این فصل همچنین به طرز لذت بخشی strace و ltrace را معرفی می کند، اگرچه مثال های بیشتری برای کسانی که با مفاهیم سیستم عامل آشنایی ندارند مفید خواهد بود.
فصل آخر برای کسانی است که می خواهند از GDB/DDD/Eclipse در زبان های دیگر استفاده کنند. من هرگز نیازی به استفاده از دیباگرها با اسکریپت احساس نکردهام، اما احتمالاً وقتی شروع به استفاده از آن میکنم، آهنگ دیگری را میخوانم.
مسلماً این کتاب دارای شیب لینوکس است، اما مثالهای عملی به یک پلتفرم عملی نیاز دارند که تحت آن مثالها ارائه شود و لینوکس به همان اندازه که برای اکثر مردم قابل دسترسی است. بیشتر بحث ها در هر پلتفرمی قابل اجرا هستند، اما به ویژه در انواع لینوکس و یونیکس قابل اجرا هستند. فصل 1 و 6 باید بخشی از تمام دوره های برنامه نویسی مقدماتی باشد و باید نقطه شروع خوبی باشد که یک برنامه نویس باتجربه بتواند به یک برنامه نویس جدید اشاره کند. فصلهای باقیمانده نسبتاً آسان خوانده میشوند و در عین حال مملو از اطلاعات مفیدی هستند که برنامهنویسان به آنها مراجعه میکنند و از خود میپرسند، “آن دستوری که انجام میدهد چه بود؟”
Chapters 1 through 3 are the starter chapters that discuss the core debugging paradigms such as breakpoints and variable analysis. Chapter 1 goes through some of the basic concepts of debugging for those new to the idea (e.g., hobbyists and just-out-of-college programmers) but it’s probably less useful for those already familiar with the concept. Chapter 2 goes through the basic debugging operations, such as setting breakpoints and analyzing variables, with an emphasis on how breakpoints can be set, cleared, and triggered using various methods. Chapter 3 goes through more on how variables of different storages can be viewed and displayed.
Chapters 4 and 5 are where things start to get interesting. Chapter 4 discusses how the debugger can be used to analyze core dumps, and touches on operating system concepts just enough to be productive in debugging for those not familiar with OS architectures. Chapter 5 discusses debugging threaded applications. As examples, applications written using popular multi-threaded and multi-process libraries such as pthread, MPI, and OpenMP are discussed, which makes the chapter more practical.
Chapter 6 is an interesting chapter. Section 6.1 goes through some common compiler error messages and how one should interpret them. They’re concepts all first semester programming course students should read. It should be read either before chapter 1 or immediately after for beginning programmers, but it’s also an entertaining section to read for the experienced programmers who goes through what the section discusses on a daily basis without ever giving it a second thought anymore. Section 6.2 should be a great read for anyone whose hair turned gray trying to debug Curses or NCurses applications under UNIX.
Chapter 7 discusses various tricks programmers use to write less buggy programs. Most of these are widely known concepts that are rarely taught in class – Vim tricks for matching parentheses, syntax highlighting, using errno and perror, libraries for catching buffer overflows, etc. Mentioning of the __LINENO__ directive is strangely lacking in this chapter, and I’m not sure how useful lint is these days but the chapter looks as complete as one would expect. The chapter also delightfully introduces strace and ltrace, though more examples would be helpful for those not familiar with OS concepts.
The final chapter is for those that want to use GDB/DDD/Eclipse in other languages. I have never felt the need to use debuggers with scripts but I probably would sing a different tune once I start using it.
The book admittedly has a Linux slant to it, but practical examples need a practical platform under which to give the examples and Linux is as accessible as it gets for most people. Most of the discussions are applicable in any platform, but they are especially applicable in Linux and UNIX variants. Chapters 1 and 6 should be a part of all introductory programming courses and should provide a good starting point to which a seasoned programmer can point a new programmer. The remaining chapters are relatively easy read yet packed with useful information to which programmers will refer back asking themselves, “what was that command that does …?”
دانلود کتاب «هنر اشکال زدایی با GDB، DDD و Eclipse»
برای دریافت کد تخفیف ۲۰ درصدی این کتاب، ابتدا صفحه اینستاگرام کازرون آنلاین (@kazerun.online ) را دنبال کنید. سپس، کلمه «بلیان» را در دایرکت ارسال کنید تا کد تخفیف به شما ارسال شود.