debugging

The Ultimate in Debugging

Mark Rainey: Engineers are currently debugging why the Voyager 1 spacecraft, which is 15 billions miles away, turned off its main radio and switched to a backup radio that hasn't been used in over forty years! I've had some tricky debugging issues in the past, including finding compiler bugs and debugging code with no debugger that had been burnt into prom packs for terminals, however I have huge admiration for the engineers maintaining the operation of Voyager 1. Recently they sent a command to the craft that caused it to shut off its main radio transmitter, seemingly in an effort to preserve power and protect from faults. This prompted it to switch over to the backup radio transmitter, that is lower power. Now they have regained communication they are trying to determine the cause on hardware that is nearly 50 years old. Any communication takes days. When you think you have a difficult issue to debug, spare a thought for this team.

Read more of this story at Slashdot.




debugging

Using Roles of Variables to Enhance Novice’s Debugging Work




debugging

Episode 101: Andreas Zeller on Debugging

In this episode we're talking to Andreas Zeller. about debugging. We started the discussion with an explanation of what debugging and how it works in principle. We then briefly discussed the relationship between debugging and testing. Next was the importance of the scientific method for debugging. We then looked as debugging as a search problem, leading to a discussion about delta debugging, the main topic of this discussion. We concluded the discussion by looking at the practical usability of delta debugging and the relationship to other means of automatically finding problems in software.




debugging

SE-Radio-Episode-282-Donny-Nadolny-on-Debugging-Distributed-Systems

Donny Nadolny of PagerDuty joins Robert Blumen to tell the story of debugging an issue that PagerDuty encountered when they set up a Zookeeper cluster that spanned across two geographically separated datacenters in different regions.




debugging

Episode 367: Diomidis Spinellis on Debugging

Felienne talks to Diomidis Spinellis about different forms of debugging. From using print-statements to version-control systems and operating system tools. We also discuss debugging strategies for different types of programming systems.




debugging

Episode 512: Tim Post on Rubber Duck Debugging

Tim Post of echoreply.io discusses Rubber Duck Debugging, a way to wrap your head about problems and solutions. Host Felienne spoke with Post about Rubber Duck debugging, and how it can help you to find answers to complex problems.




debugging

FROM THE ARCHIVES: John Spurling at UnVoxxed Hawaii 2020 on Debugging

Jim Grisanzio talks with John Spurling, a JVM engineer at Twitter, at UnVoxxed Hawaii 2020 about debugging and the mental process of solving difficult technical issues.

John Spurling, Twitter
https://twitter.com/synecdotal 

Jim Grisanzio, Java Developer Relations
https://twitter.com/jimgris 

Video on YouTube
https://youtu.be/6dwOPQSJwaI 

UnVoxxed Hawaii
https://flic.kr/s/aHsmLF23KD 
https://twitter.com/UnVoxxedHawaii 
https://www.youtube.com/playlist?list=PLX8CzqL3ArzU0APb6QgpMMTMPEz1jok5Q 

Seymour Cray
https://en.wikipedia.org/wiki/Seymour_Cray 

Make It Stick: The Science of Successful Learning 
https://www.amazon.com/Make-Stick-Science-Successful-Learning/dp/0674729013 




debugging

The Lost Art of Debugging with Mark Heckler

JavaOne 2022 Speaker Preview

In this conversation Oracle's Jim Grisanzio talks with Java developer and JavaOne 2022 speaker Mark Heckler from St. Louis. Missouri in the United States.

Mark is a software developer and developer advocate at Microsoft, a Java Champion, a conference speaker, and an author. Check out his book Spring Boot: Up and Running. In this conversation Mark previews his session at JavaOne — Das Boot: Diving into Debugging Spring Boot Applications. Mark also talks about the value of technical conferences and the community. 

JavaOne 2022 from October 17-20 in Las Vegas

Mark Heckler, Principal Cloud Developer Advocate for Java/JVM Languages at Microsoft

Java Development and Community

Duke's Corner Podcast Host

  • Jim Grisanzio, Oracle Java Developer Relations, @jimgris




debugging

Training Webinar: Protium X2: Using Save/Restart for Debugging

Cadence Protium prototyping platforms rapidly bring up an SoC or system prototype and provide a pre-silicon platform for early software development, SoC verification, system validation, and hardware regressions. In this Training W ebinar, we will explore debugging using Save/Restart on Protium X2 . This feature saves execution time and lets you focus on actual debugging. The system state can be saved before the bug appears and restartS directly from there without spending time in initial execution. We’ll cover key concepts and applications, explore Save/Restart performance metrics, and provide examples to help you understand the concepts. Agenda: The key concepts of debugging using save/restart Capabilities, limitations, and performance metrics Some examples to enable and use save/restart on the Protium X2 system Date and Time Thursday, November 7, 2024 07:00 PST San Jose / 10:00 EST New York / 15:00 GMT London / 16:00 CET Munich / 17:00 IST Jerusalem / 20:30 IST Bangalore / 23:00 CST Beijing REGISTER To register for this webinar, sign in with your Cadence Support account (email ID and password) to log in to the Learning and Support System*. Then select Enrol to register for the session. Once registered, you’ll receive a confirmation email containing all login details. A quick reminder: If you haven’t received a registration confirmation within 1 hour of registering, please check your spam folder and ensure your pop-up blockers are off and cookies are enabled. For issues with registration or other inquiries, reach out to eur_training_webinars@cadence.com . Want to See More Webinars? You can find recordings of all past webinars here Like This Topic? Take this opportunity and register for the free online course related to this webinar topic: Protium Introduction Training The course includes slides with audio and downloadable lab exercises designed to emphasize the topics covered in the lecture. There is also a Digital Badge available for the training. Want to share this and other great Cadence learning opportunities with someone else? Tell them to subscribe . Hungry for Training? Choose the Cadence Training Menu that’s right for you. To view our complete training offerings, visit the Cadence Training website . Related Courses Protium Introduction Training Course | Cadence Palladium Introduction Training Course | Cadence Related Blogs Training Insights – A New Free Online Course on the Protium System for Beginner and Advanced Users Training Insights – Palladium Emulation Course for Beginner and Advanced Users Related Training Bytes Protium Flow Steps for Running Design on Protium System ICE and IXCOM mode comparison ICE compile flow IXCOM compile flow PATH settings for using Protium System Please see the course learning maps for a visual representation of courses and course relationships. Regional course catalogs may be viewed here




debugging

Path mapping for C Firmware source files when debugging

Hi,

i am compiling firmware under Windows transfer the binaries and the sources to Linux to simulate/debug there. The problem is that the paths in the DWARF debug info of the .elf file are the absolute Windows paths as set by the compiler so they are useless under Linux. Is it possible to configure mappings of these paths to the Linux paths when simulating/debugging like with e.g. GDB (https://sourceware.org/gdb/current/onlinedocs/gdb/Source-Path.html#index-set-substitute_002dpath)?

thx,

Peter




debugging

UVM debugging: How to save and load signals during an interactive session in Simvision

Hello,

I am aware of command script .svcf file that saves signals and loads them in while opening Simvision.

I am wondering, if there is a way for saving signals while we are in an interactive session and loading them next time when we open Simvision interactively.

Any ideas on how to do this?

Thank you in advance.

Swetha. C




debugging

How To Disable Script Debugging




debugging

Verification module apparatus for debugging software and timing of an embedded processor design that exceeds the capacity of a single FPGA

A plurality of Field Programmable Gate Arrays (FPGA), high performance transceivers, and memory devices provide a verification module for timing and state debugging of electronic circuit designs. Signal value compression circuits and gigabit transceivers embedded in each FPGA increase the fanout of each FPGA. Ethernet communication ports enable remote software debugging of processor instructions.




debugging

Partial reconfiguration and in-system debugging

Embedded logic is implemented in a partially reconfigurable programmable logic device (PLD), thus allowing debugging of implemented instantiations of logic after partial reconfiguration. Several instantiations of logic are received at the PLD. One instantiation of logic is implemented in a reconfigurable region of logic within the PLD. The instantiation of logic includes a port that provides a constant interface between the reconfigurable region of logic and a fixed region of logic within the PLD. The port may receive signals from probe points implemented within the reconfigurable region of logic. The port may provide the signals to a signal interface implemented within a fixed region of logic. Furthermore, an embedded logic analyzer may be implemented in either the reconfigurable region of logic or the fixed region of logic. The embedded logic analyzer receives signals from the probe points and provides signal visibility to an external computing system.




debugging

OBJECT MONITORING IN CODE DEBUGGING

According to example embodiments of the present invention, an object to be monitored is determined, the object being associated with a variable in a code snippet including a plurality of statements. The object is monitored in execution of the plurality of statements. If a plurality of updates of the object are detected in the execution of the plurality of statements, a snapshot associated with each of the updates of the object is created. The snapshot includes a current value of the object and a memory address for the current value of the object.




debugging

SAS Notes for SAS®9 - 65871: Enabling debugging for SAS Workflow Studio

This SAS Note provides instructions about how to enable SAS Workflow Studio log generation and debugging in order to troubleshoot a problem in SAS Workflow Studio. On the client machine where&




debugging

How to analyze the performance of C/C++ and debugging OpenGL ES frames on ARM and x86 Android devices

  When developing an Android* application, you usually need to test, optimize, and debug on many different platforms. While basically every hardware and chip manufacturer provides a set of custom tools...




debugging

Guide to debugging Android NDK apps with Eclipse and gdb (video)

   Debugging Android* NDK apps with Eclipse* and gdb Eclipse* with ADT plugin and CDT, all part of the ADT bundle, support the Android* NDK quite well. You can even use gdb integration to debug yo...




debugging

How do we use the concept of Save and Restore during real developing(debugging)???/

Hi All,

I'm trying to understand checkpoint concept. When I found save and restart concept in cdnshelp, There is just describing about "$save" and "xrun -r "~~~".

and I found also the below link about save restart and it saves your time.

But I can't find any benefits from my experiment from save&restart article( I fully agree..the article)

Ok, So I'v got some experiment  Here.

1. I declared $save and got the below result as I expected within the simple UVM code.

In UVM code...

$display("TEST1");
$display("TEST2");
$save("SAVE_TEST");
$display("TEST3");
$display("TEST4");

And I restart at "SAVE_TEST" point by xrun -r "SAVE_TEST", I've got the below log

xcelium> run
TEST3
TEST4

Ok, It's Good what I expected.(The concept of Save and Restore is simple: instead of re-initializing your simulation every time you want to run a test, only initialize it once. Then you can save the simulation as a “snapshot” and re-run it from that point to avoid hours of initialization times. It used to be inconvenient. I agree..)

2. But The Problem is that I can't restart with modified code. Let's see the below example.

I just modified TEST5 instead of "TEST3"

$display("TEST1");
$display("TEST2");
$save("SAVE_TEST");
$display("TEST5"); //$display("TEST3");
$display("TEST4");

and I rerun with xrun -r "SAVE_TEST", then I've got the same log

xcelium> run
TEST3
TEST4

There is no "TEST5". Actually I expected "TEST5" in the log.From here We know $save can't support partially modified code after $save. 

Actually, through this, we can approach to our goal about saving developing time. 

So I want to know Is there any possible way that instead of re-initializing our simulation every time we want to run a test, only initialize it once and keep developing(debugging) our code ?

If we do, Could you let me know the simple example?




debugging

Code: debugging the gender gap

Hayden Library - QA76.9.W65 C6 2014




debugging

Web Directions Code ’20 session spotlight–JavaScript debugging the hard way

JavaScript debugging the hard way Marcin Szczepanski, Principal Developer Atlassian Error on line 1, column 6532112 of bundle.js? Out of memory error trying to load a CPU profile into the Chrome debugger? Two minutes to see wait and see if a change you made fixed a bug? While upgrading our complex web application from Webpack […]

The post Web Directions Code ’20 session spotlight–JavaScript debugging the hard way appeared first on Web Directions.




debugging

Debugging game history: a critical lexicon / edited by Henry Lowood and Raiford Guins; editorial assistant, A.C. Deger

Hayden Library - GV1469.3.D43 2016




debugging

JSJ 391: Debugging with Todd Gardner

Episode Summary

Todd Gardner is a software developer, podcaster on the show Script and Style, startup founder,  and comedy host for Pub Conf, a ‘comedy after party for developers’. Since he was last on the show 6 years ago, he has seen his startup TrackJS become quite successful. TrackJS is a JavaScript error monitoring service which gives you visibility into your client side experience. It’s different from other tools because focused on simplicity, so you’ll never need a guy on your team dedicated solely to TrackJS because everyone can use it.

The panel begins by talking about debugging methods and tools. Some rely solely on the debugger built into their platform while others prefer to use a third party service. They discuss the necessity of using a third party debugger and if there are better solutions than just the built in debugger. 

They then discuss what to do after you’ve fixed a bug, such as if it is necessary to write a test to make sure it was completely fixed They talk about things to do to make debugging more effective. Todd and Aimee believe that code needs to begin by being designed for debug-ability. 

The panel discusses issues with invisible boundaries encountered while debugging, such as running out of memory. They talk about ways to mitigate issues that happen outside of your code base. Todd talks about the dangers of ad-blockers, and the panel agrees that it is important to consider how your website will be crippled by the user’s own technology. The end user in a production environment will have a different experience than you did writing it on a professional computer. 

Todd talks about the difference between debugging for the web versus a mobile application. Todd has encountered particular problems with debugging on a remote device, and he talks about how he solved the issue. The show concludes with Todd giving a quick elevator pitch for TrackJS

Panelists

  • Chris Ferdinandi

  • Christopher Buecheler

  • Aimee Knight

  • Charles Max Wood

  • Steve Emmrich

With special guest: Todd Gardner

Sponsors

Links

Follow DevChat on Facebook and Twitter

Picks

Christopher Buecheler:

Chris Ferdinandi:

Aimee Knight:

Charles Max Wood:

  • Atomic Habits

  • Getting up at 4 am

Steve Emmrich:

  • Trello

  • Babushkas and grandmas to help you with your newborn

Todd Gardner:

  • PubConf

  • Follow Todd @toddhgardner or todd.mn




debugging

JSJ 399: Debugging with Async/Await with Valeri Karpov

Valeri Karpov is a maintainer on Mongoose, has started a few companies, and works for a company called Booster Fuels. Today’s topic debugging with Async/Await. The panel talks about some of the challenges of debugging with Async. AJ, however, has never encountered the same problems, so he shares his debugging method. 

Valeri differentiates between .catch vs try...catch, and talks about why he prefers .catch. There are two ways to handle all errors in an async function without leading to an unhandled promise rejection. The first is to wrap the entire body of the async function in a try...catch, has some limitations. Calling an async function always returns a promise, so the other approach is calling .catch on the promise to handle any errors that occur in that function body. One of the key differences is if you return a promise within an async function, and that return promise is wrapped in a try...catch, the catch block won’t get called if that promise is rejected, whereas if you call .catch on the promise that the function returns, you’ll actually catch that error. There are rare instances where this can get tricky and unintuitive, such as where you have to call new promise and have resolve and reject, and you can get unexpected behavior.

The panel discusses Valeri’s current favorite JS interview question, which is,  “Given a stream, implement a function called ‘stream to promise’ that, given a stream, returns a promise that resolves to the concatenation of all the data chunks emitted by the stream, or rejects if the stream emits an error event.” It’s really simple to get this qustion right, and really simple to get it wrong, and the difference can be catastrophic. AJ cautions listeners to never use the data event except in the cases Val was talking about, only use the readable event.

The conversation turns to the function of a readable event. Since data always pushes data, when you get a readable event, it’s up to you to call read inside the function handler, and then you get back a chunk of data, call read again and again until the read returns null. When you use readable, you are in control and you avoid piling functions into RAM. In addition, the right function will return true or false to let you know if the buffer is full or not. This is a way to mix imperative style into a stream.

The next discussion topics are the differences between imperative style and reactive style and how a waits and promises work in a normal four loop. A wait suspends the execution of a function until the promise is resolved. Does a wait actually stop the loop or is it just transpiling like a promise and it doesn’t stop the loop. AJ wrote a module called Batch Async to be not as greedy as promise.all but not as limited as other options.

The JavaScript panelists talk about different async iterators they’ve used, such as Babel. They discuss the merits of Babel, especially since baseline Android phones (which a significant portion of the population of the world uses) run UC Browser that doesn’t support Babel, and so a significant chunk of the population of the world. On the other hand, if you want to target a large audience, you need to use Babel.

Since frameworks in general don’t handle async very well, the panel discusses ways to mitigate this. They talk about different frameworks like Vue, React, and Express and how they support async functions. They discuss why there is no way for you to actually cancel an async option in an actual case, how complex canceling is, and what you are really trying to solve for in the cancellation process. 

Canceling something is a complex problem. Valeri talks about his one case where he had a specific bug that required non-generic engineering to solve, and cancelling actually solved something. When AJ has come across cancellation issues, it’s very specific to that use case. The rest of the panelists talk about their experiences with having to cancel something. 

Finally, they talk about their experience with async generator functions. A generator is a function that lets you enter into the function later. This makes sense for very large or long running data sets, but when you have a bounded items, don’t complicate your code this way. When an async generator function yields, you explicitly need to call next in order for it to pick up again. If you don’t call ‘next’, it’s essentially cancelled. Remember that object.keys and object.values are your friends. 

Panelists

  • Christopher Buecheler

  • AJ O’Neal

  • Charles Max Wood

With special guest: Valeri Karpov

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

AJ O’Neal:

Christopher Buecheler:

Charles Max Wood:

Valeri Karpov: