11 ms·
In the hw world we debug with waveform viewers (Simvision, DVE, and the like). You can see the value of any signal at any point in time. Move forward and back
by dded 13y ago
In the hw world we debug with waveform viewers (Simvision, DVE, and the like). You can see the value of any signal at any point in time. Move forward and backward in time. Search for when a bus switches, or even for when it switches to a particular value. You can even say "show me all points at which foo == 16'hdead and bar == 16'hbeef and x is high but y is not 8'h7."
Now I understand it's a different problem, but sometimes I think you sw guys live in the dark ages.
- moron4hire 13y agoOh come on. HW developers don't even use source control.
- dded 13y agoWell, things have improved a lot, but there's way more truth in what you say than there should be.
- tlarkworthy 13y agowe have conditional breakpoints. We do, unfortunately, always have to simulate the program in the forward direction from the beginning though, yes. Actually, there are a few debuggers that can step backwards, but its not mainstream and the memory overhead is apparently enormous.
- plorkyeran 13y agoGDB's had reverse-step since 7.0 (released in 2009).
- cfallin 13y agoI did grad school in computer architecture and did a lot of cycle-level debugging in simulators, and I agree this mode of debugging is very very useful. I think that the closest analogue to a waveform view in software may actually be printf()/log-based debugging, in the sense that there's a sort of temporal vs. spatial tradeoff going on: with waveform views or logs (temporal view), you see only the signals/data you've chosen to post, but you can easily see sequences through time, which is useful for many sorts of systems. With a traditional debugger (spatial), you can poke around in memory arbitrarily at a breakpoint, but it's more difficult to see time (you have to explicitly step forward, and usually can't back up). Both are useful.
- deleted 13y ago[deleted]
- ithinkso 13y agoNo, sw guys does not live in the dark ages and if you're saying about debugging waveforms by 'value at any point in time' that means for me that is you who need to change his place in history. I'm more hw guy than sw but I see the problem here, debugging is not "show me all points at which foo ==" so you have no idea what are you talking about.
- roel_v 13y ago"but sometimes I think you sw guys live in the dark ages." Well those using gdb are, yes. (ducks)
- moron4hire 13y agoThat isn't a fair comparison because your scope is only showing you an extremely precise, narrow view of the problem. It would be like having a software debugger that could show you the past and present state for all time slices of the values of the processor registers. For application-level debugging. it would be completely useless.