Undo
Undo
  • 123
  • 98 252
Debugging SystemC with Time Travel Debugging
Software & Silicon Engineer Jonathan Bonsor-Matthews provides a tutorial on how to debug SystemC considerably faster with time travel debugging.
SystemC designs can be large and complicated, making logic errors, race conditions, and other synchronization issues common scenarios. This tutorial video illustrates how to debug such defects within minutes, not weeks.
View the full written tutorial at undo.io/resources/debug-systemc-time-travel-debugging-tutorial/
มุมมอง: 142

วีดีโอ

How to debug multiple processes communicating with sockets in C/C++
มุมมอง 3862 หลายเดือนก่อน
When debugging a multiprocess application, it's really hard to trace the information that flows from one process to another process. In this tutorial video, Software Engineer Magne Hov illustrates how to use Undo recordings and UDB’s socket correlation features to easily track information as it flows between different processes. More info at undo.io/resources/debug-multiple-processes-sockets-c-c
Demo of L3 (Lightweight Logging Library) - Open Source Program to Debug Race Conditions
มุมมอง 6653 หลายเดือนก่อน
L3: Lightweight Logging Library. A very small 'C' library to generate low-footprint, non-intrusive, high-performance logging of trace messages in an mmap()'ed file. Tools are provided to unpack the binary log-data into human-readable traces. printf debugging often leads to "Heisenbugs" the addition of the printf causes the bug to go away or change. This is especially common when trying to root-...
Synopsys saw an increase in customer satisfaction after investing in Undo's technology
มุมมอง 2005 หลายเดือนก่อน
Success story: Synopsys saw an increase in customer satisfaction and developer productivity after deploying Undo's time travel debugging technology across its flagship products. The Head of Central Engineering, Arun Venkatachar explains how he achieved this. Visit this page for more info: undo.io/case-studies/synopsys-boosts-customer-satisfaction-and-developer-productivity
Re-animating a zombie in Doom (with time travel debugging)
มุมมอง 6575 หลายเดือนก่อน
Watch how I re-animated a zombie in Doom by traveling back in time in the program's execution
Debugging Kotlin with time travel debugging
มุมมอง 466 หลายเดือนก่อน
Debugging Kotlin with time travel debugging - for more info visit undo.io/products/java
Debugging microservices with time travel debugging
มุมมอง 336 หลายเดือนก่อน
Debugging microservices with time travel debugging
The undo command: the entry point to all Undo's command-line tools
มุมมอง 1046 หลายเดือนก่อน
The undo command: the entry point to all Undo's command-line tools
UDB Time Travel Debugging (Demo)
มุมมอง 1637 หลายเดือนก่อน
UDB Time Travel Debugging (Demo)
Creating Point Recordings with LiveRecorder
มุมมอง 149 หลายเดือนก่อน
Creating Point Recordings with LiveRecorder
How to get started with UDB
มุมมอง 21410 หลายเดือนก่อน
How to get started with UDB
Debugging Microservices with Time Travel Debugging
มุมมอง 21511 หลายเดือนก่อน
Debugging Microservices with Time Travel Debugging
Debugging multithreaded code with GDB: thread names
มุมมอง 2.1K11 หลายเดือนก่อน
Debugging multithreaded code with GDB: thread names
Debugging a Go application with time travel debugging
มุมมอง 140ปีที่แล้ว
Debugging a Go application with time travel debugging
Debugging data races with Helgrind
มุมมอง 761ปีที่แล้ว
Debugging data races with Helgrind
Debugging Race Conditions with ThreadSanitizer (TSan)
มุมมอง 1.2Kปีที่แล้ว
Debugging Race Conditions with ThreadSanitizer (TSan)
Debugging concurrency issues in multithreaded applications
มุมมอง 1.3Kปีที่แล้ว
Debugging concurrency issues in multithreaded applications
Getting started with Time Travel Debug for C/C++ in VS Code
มุมมอง 741ปีที่แล้ว
Getting started with Time Travel Debug for C/C in VS Code
A quick introduction to using Valgrind and AddressSanitizer
มุมมอง 2.7Kปีที่แล้ว
A quick introduction to using Valgrind and AddressSanitizer
Time Travel Debugging with LiveRecorder (Overview & Demo)
มุมมอง 413ปีที่แล้ว
Time Travel Debugging with LiveRecorder (Overview & Demo)
Developer Productivity: Diagnose Software Failures with a Single Build & Test Cycle
มุมมอง 161ปีที่แล้ว
Developer Productivity: Diagnose Software Failures with a Single Build & Test Cycle
Time travel debugging with the rr debugger
มุมมอง 3.3Kปีที่แล้ว
Time travel debugging with the rr debugger
Multiprocess debugging in GDB
มุมมอง 1.9Kปีที่แล้ว
Multiprocess debugging in GDB
A complete example: debugging an open source program with LiveRecorder
มุมมอง 263ปีที่แล้ว
A complete example: debugging an open source program with LiveRecorder
Pretty printing in GDB
มุมมอง 1.2Kปีที่แล้ว
Pretty printing in GDB
Accelerated conditional breakpoints in UDB
มุมมอง 118ปีที่แล้ว
Accelerated conditional breakpoints in UDB
Time travel debugging (a.k.a. reversible debugging)
มุมมอง 4602 ปีที่แล้ว
Time travel debugging (a.k.a. reversible debugging)
Debugging a memory corruption issue with UDB
มุมมอง 2422 ปีที่แล้ว
Debugging a memory corruption issue with UDB
LiveRecorder 6.9: the last command
มุมมอง 1682 ปีที่แล้ว
LiveRecorder 6.9: the last command
The State of Debugging Java
มุมมอง 1152 ปีที่แล้ว
The State of Debugging Java

ความคิดเห็น

  • @saadabdulmajid1327
    @saadabdulmajid1327 9 วันที่ผ่านมา

    Really glad I found this channel.

  • @deutschWallah
    @deutschWallah หลายเดือนก่อน

    Thanks Greg a lot for everything 😀 I have been following your teaching for the last 10 years.

    • @greglaw9145
      @greglaw9145 29 วันที่ผ่านมา

      😍 thank you!

  • @wolpumba4099
    @wolpumba4099 หลายเดือนก่อน

    *Summary* * *(**0:00**)* *SystemC Debugging is Difficult:* SystemC designs are often complex and prone to logic errors, race conditions, and synchronization problems. Traditional debugging methods can be slow and tedious. * *(**0:20**)* *Time Travel Debugging is Faster:* The video showcases Undo's time travel debugger, which allows you to step backward through code execution to quickly pinpoint the root cause of bugs. * *(**1:20**)* *Simple FIFO Example:* A bug is introduced in a simple FIFO example. The debugger is used to step back through the code and identify an incorrect order of operations (incrementing an index before reading data). * *(**8:13**)* *Complex Bus Example:* A bug is introduced in a more complex bus example. The debugger, in conjunction with conditional breakpoints based on timestamps, is used to find the error where data is being modified before it's fully read from a burst read operation. * *(**8:13**)* *Call Stack Confusion:* The video advises against relying heavily on the SystemC call stack as it can be complex and misleading due to the SystemC scheduler's low-level operation. Instead, focus on setting breakpoints and using the "last changed" feature of the debugger. * *(**17:00**)* *Debugging Tips:* * *(**17:00**)* *Intermediate Variables:* Design code with intermediate variables that can be helpful for setting conditional breakpoints later. * *(**17:00**)* *In-Executable Checking:* Include checks for expected values directly within the code rather than relying on external log comparison. This allows for setting breakpoints directly on assertion failures. * *(**17:00**)* *Automated Reruns with Recording:* Use `live-record` with the `--retry-for` option to automatically record failing test runs for efficient debugging the next day. * *(**17:59**)* *Undo Live Recorder:* The video highlights the utility of Undo Live Recorder to capture recordings of program execution for later analysis and debugging. * *(**18:50**)* *Overall:* The video emphasizes the power and efficiency of time travel debugging with Undo for simplifying the process of finding and fixing bugs in SystemC designs. It encourages a proactive approach to design and testing with debuggability in mind. Summarized by AI model: gemini-1.5-pro-exp-0801 Cost (if I didn't use the free tier): $0.0858 Input tokens: 21787 Output tokens: 907

  • @wolpumba4099
    @wolpumba4099 หลายเดือนก่อน

    Amazing!

  • @PerriPaprikash
    @PerriPaprikash 4 หลายเดือนก่อน

    never understood why people insist on showing their faces in these kinds of video. also 8 minutes - really?

  • @Hewtoob
    @Hewtoob 5 หลายเดือนก่อน

    🤯🤯

  • @thadtheman3751
    @thadtheman3751 5 หลายเดือนก่อน

    So what is the advantage of using rr instead of just running gdb and using reverse debugging? Especially since you have to escalate your privilege to use rr.

    • @Undo-io
      @Undo-io 5 หลายเดือนก่อน

      Reverse debugging in GDB is alright but it's very slow compared to rr, so it's unlikely to work on real-life applications - here is a tutorial on this topic: undo.io/resources/gdb-watchpoint/time-travel-debugging-gdb

  • @sverkeren
    @sverkeren 6 หลายเดือนก่อน

    rr

  • @BobiBobObana
    @BobiBobObana 7 หลายเดือนก่อน

    and how to debug istream, istreambuf_iterator, etc.

  • @FrankMadero
    @FrankMadero 7 หลายเดือนก่อน

    Im hearing alot of wisdom here.

  • @FrankMadero
    @FrankMadero 7 หลายเดือนก่อน

    awesome vid should get way more views.

    • @greglaw2660
      @greglaw2660 7 หลายเดือนก่อน

      Thank you!

  • @Jedlmind
    @Jedlmind 8 หลายเดือนก่อน

    Very helpful video. Thank you.

  • @toxblh
    @toxblh 8 หลายเดือนก่อน

    Wow, thx for the info

  • @poseidon8680
    @poseidon8680 9 หลายเดือนก่อน

    Can AddressSanitizer be used as a master data management system separately?

  • @intermarer9145
    @intermarer9145 9 หลายเดือนก่อน

    Getting Dings Bone?

  • @deepikagoyal07
    @deepikagoyal07 10 หลายเดือนก่อน

    Thanks a lot mike, it was very useful.

  • @LudovicGuegan
    @LudovicGuegan 10 หลายเดือนก่อน

    Thank you for this concise and precise presentation.

  • @ultimateavenger5627
    @ultimateavenger5627 11 หลายเดือนก่อน

    Nice

  • @goodguygoddy
    @goodguygoddy ปีที่แล้ว

    Thanks for this tutorial 👍

    • @greglaw2660
      @greglaw2660 7 หลายเดือนก่อน

      Thanks!

    • @tttakkkumi
      @tttakkkumi 8 วันที่ผ่านมา

      @@greglaw2660awesome videos thanks a lot, just in time for the concurrency course

  • @Tamloo1
    @Tamloo1 ปีที่แล้ว

    Next time can you please stay punctual and professional and record using a screen recorder?

  • @yash_renaissance_athlete
    @yash_renaissance_athlete ปีที่แล้ว

    Amazing video! Everything was so lucid!

  • @aayushbajaj2260
    @aayushbajaj2260 ปีที่แล้ว

    does anyone know how to navigate through these buffers efficiently? my regular doom ctrl-w hjkl bindings don't seem to be working :/

    • @azmatyusuf7443
      @azmatyusuf7443 9 หลายเดือนก่อน

      Use ace-window (built-in) it is great!

  • @ferhat3223
    @ferhat3223 ปีที่แล้ว

    Thank's man.

  • @ChandanSah-un2xg
    @ChandanSah-un2xg ปีที่แล้ว

    Plewase, record full screen ( using OBS maybe), I cant find the "My Configurations" tab.

  • @71GA
    @71GA ปีที่แล้ว

    This probably works nice for C, but what about C++ STL??? Those objects are quite intimidating!

    • @greglaw9145
      @greglaw9145 ปีที่แล้ว

      It works really well with STL! There are default STL pretty printers on most distros, and pretty printers nest

  • @71GA
    @71GA ปีที่แล้ว

    Thank you. How does this work with Freertos? Does it?

  • @joachimrosenberger2109
    @joachimrosenberger2109 ปีที่แล้ว

    Thanks!

  • @workingthread4211
    @workingthread4211 2 ปีที่แล้ว

    could you please share your launch.json? Mine seems not to work

    • @Undo-io
      @Undo-io 2 ปีที่แล้ว

      Video description updated with details on where to get hold of launch.json info :) Feel free to contact me directly on chris (at) undo (dot) io for help or questions.

  • @leegibson9121
    @leegibson9121 2 ปีที่แล้ว

    Wow, that's a brilliant showcase for reverse debugging. I really enjoyed this video, thanks.

  • @sheikhasadullahashiq940
    @sheikhasadullahashiq940 2 ปีที่แล้ว

    If you want to download the latest version of this software links are given below! crackdudu.com/ crackdudu.com/jetbrains-clion-crack/

  • @krishnabugudi2512
    @krishnabugudi2512 2 ปีที่แล้ว

    Please do more videos on signal handle

    • @greglaw9145
      @greglaw9145 2 ปีที่แล้ว

      Hi Krishna. Thank you for your kind words. Anything in particular you'd like to know about signals?

  • @krishnabugudi2512
    @krishnabugudi2512 2 ปีที่แล้ว

    Really love the way you teach

  • @_jasneetsingh_
    @_jasneetsingh_ 2 ปีที่แล้ว

    at 2:52 you mention that watchpoint is triggered when memory is changed and not when memory is written. Can you elaborate more on what does it mean?

    • @greglaw9145
      @greglaw9145 2 ปีที่แล้ว

      Sure. Say you watch variable foo, when foo = 42. Then the program assigns the same value, 42. The memory has been written, but did not change. The x86 hardware watchpoint will trigger, but GDB will notice that foo has not changed, and quietly continue. Which is totally reasonable behaviour, but (perhaps because I was polluted by knowledge of how the hardware works) slightly surprised me when I first encountered it.

  • @armanthehyper3738
    @armanthehyper3738 2 ปีที่แล้ว

    Noice

  • @SmokeDankTrees
    @SmokeDankTrees 2 ปีที่แล้ว

    How are you showing the source code?

  • @errvega2705
    @errvega2705 2 ปีที่แล้ว

    my arrays show "complex data type" and dont show its values. while in gdb issuing "info locals" shows it

  • @khachikkhachatryan4885
    @khachikkhachatryan4885 2 ปีที่แล้ว

    Hi guys. This is very cool. The question is that clients only need to optimize the assembly, and they record the assembly optimization and send it to the programmers, then they can understand the cause of the error and debug.

    • @Undo-io
      @Undo-io 2 ปีที่แล้ว

      Thanks Khachik! This is actually quite an old video - latest info on this technology is here undo.io/solutions/solutions/liverecorder-production/ :)

    • @khachikkhachatryan4885
      @khachikkhachatryan4885 2 ปีที่แล้ว

      @@Undo-io Thanks for the quick response I read this but did not find an answer to my question.one more question. but if the client sends a recorded file and he wrote this into build optimization how informative it is if it cannot be fully debugged. if there is a specific answer or documentation to this question please give. Thanks.

    • @emilianotesta5682
      @emilianotesta5682 2 ปีที่แล้ว

      Hi @@khachikkhachatryan4885 , the recording can be enhanced with symbols if the application has been stripped. If the compiler optimized the code then the recording will contain the optimized code BUT, because you can add symbols to it - just like with GDB, then you should be able to debug it easily enough. Does this help?

  • @spencerjones1844
    @spencerjones1844 3 ปีที่แล้ว

    Starship has cool looking prompts.

  • @ebukaezike9308
    @ebukaezike9308 3 ปีที่แล้ว

    Hello how do I write test for the pretty printers ?

  • @tirthankarbarik366
    @tirthankarbarik366 3 ปีที่แล้ว

    How to run UDB in batch mode?

    • @barisione
      @barisione 3 ปีที่แล้ว

      Hi, you can use the --batch command line option. For instance: $ udb --batch -ex "some command" -ex "another command" If you have more advanced scripting needs, you can use the Python Automation API, see docs.undo.io/AutomationAPI.html.

  • @tirthankarbarik366
    @tirthankarbarik366 3 ปีที่แล้ว

    How we run UndoDB in batch mode

  • @thepollardbull
    @thepollardbull 3 ปีที่แล้ว

    Cool idea. I'd love to try it.

    • @Undo-io
      @Undo-io 3 ปีที่แล้ว

      Hey Kent, you can try it for free :) -->> undo.io/solutions/products/udb/

  • @thepollardbull
    @thepollardbull 3 ปีที่แล้ว

    This didn't work for me. I appreciate the video though some environment setup instructions would help me know if this applies to me. I'm using Mac OSX. It seems these instructions are designed to work for a machine with the source code to the 'ls' command, which I assume is Linux.

    • @finngrimwood5899
      @finngrimwood5899 3 ปีที่แล้ว

      Hi Kent, I was using the `ls` command as an example because I had the source code available, but you're right unless you go and find the source code manually I wouldn't expect it to be on your system. I should have made that clearer and/or given some setup instructions in the video! I'd recommend trying to follow the steps on something that you know you have the source code for, but if you want to try it on `ls` specifically then you can grab the source from the GNU project's git hosting with the following command: `git clone git://git.sv.gnu.org/coreutils`. Then follow the instructions in the `README` and `README-hacking` files in that repository to build `ls` yourself. You're right that I'm on Linux, but I think you should still be able to check out and build `ls` on Mac OSX.

    • @thepollardbull
      @thepollardbull 3 ปีที่แล้ว

      ​@@finngrimwood5899 I was able to get things working with LLDB and CLANGD with lsp-mode and cmake-ide. It's pretty awesome! Your video was valuable even though I went a different route. I've got that repo cloned and am working through the README-hacking. I had to fix my texinfo like so `stackoverflow.com/a/44382617/2084253` which amounts to `export PATH="/usr/local/opt/texinfo/bin:$PATH" ` in my profile. And I had to install wget with `brew install wget`. Maybe I can copy you and make a video with LLDB and CLANGD using LS :) Would you mind?

  • @neeliyer6513
    @neeliyer6513 3 ปีที่แล้ว

    Audio is feeble....

  • @howzit4273
    @howzit4273 3 ปีที่แล้ว

    Which debug template did you use, or what settings did you use?

    • @howzit4273
      @howzit4273 3 ปีที่แล้ว

      @Phil Nash I didn't realize you had to create a C executable project to utilize the IDE's debugger by default. I just started using CLion cause I would like to use GDB on Mac OS 11.1. The way of creating your own code signed certificate doesn't work any more. I originally just opened my directory containing my source code and make files, and tried to run the debugger there but when I did a menu came up saying "Edit Configurations..." There was no option to debug. But I just realized that in order to use the IDE debug function I had to open a project and then load my files via a make file. (Which is obvious now, but as I said I'm new to this) Is there a video showing how to load certain libraries such as lreadline, along with multiple files. The CmakeLists.txt file is hard to navigate if your used GCC.

  • @wufuheng
    @wufuheng 4 ปีที่แล้ว

    how to display shared_ptr contents?

  • @badatcomputer
    @badatcomputer 4 ปีที่แล้ว

    Thanks, the many-windows function helped, and watching someone else use gdb in Emacs is really useful.

  • @armanthehyper3738
    @armanthehyper3738 4 ปีที่แล้ว

    Wow

  • @gamingparlour1732
    @gamingparlour1732 4 ปีที่แล้ว

    hey there, do you have any channel(irc) for queries.... I have a c++ server running and when I request a particular link it fails segmn fault...Can I use live recorder to record just that failing request.

    • @worldgeektube
      @worldgeektube 4 ปีที่แล้ว

      The short answer is yes and there are multiple ways to focus on a particular failure in a process. You can record everything in that server process or selectively turn on recording at a particular trigger point in your application e.g. when receiving a certain link. When replaying in the debugger you can jump to an individual request. AFAIK there isn't any IRC channel but there's an enquiry form on the Undo.io contact page.

  • @xenon5993
    @xenon5993 4 ปีที่แล้ว

    Thank you very much! ^^