Hi, Am not able to record a process, not sure why it is not able to do so. can you please help on how to debug it.[root@VM-228 undo-6.6.0-dev.850b22880926]# ./live-record -p 11027live-record: Termination recording will be written to /opt/cfg/undo-6.6.0-dev.850b22880926/11027-2022-05-14T16-57-41.771.undo if requiredlive-record: Maximum event log size is 1GError: Cannot enable recordinglive-record: No child processes (-10:ECHILD) Thank you,Rajesh
I am trying the live debugging guide for java , in intellij an unable to get to workam seeing the following error with my demo project, any help as to what’s going wrong ?18:05:32.962 [main] DEBUG io.undo.jdwp.UdbJVMDebugger - type database created18:05:33.012 [main] ERROR io.undo.jdwp.UdbJDWPBridge - startup errorjava.lang.Exception: Please make sure debug symbols are installed! at io.undo.jdwp.UdbJDWPBridge.<init>(UdbJDWPBridge.java:230) [undo-jdwp-java-1.0.jar:?] at io.undo.jdwp.UdbJDWPBridge.main(UdbJDWPBridge.java:121) [undo-jdwp-java-1.0.jar:?]18:05:33.016 [main] DEBUG io.undo.jdwp.UdbJDWPBridge - agent has been notified on port 4168318:05:33.016 [main] DEBUG io.undo.jdwp.UdbJDWPBridge - wait for JDWP thread to connect
If, while recording through the API, one of the undolr_stop() or undolr_discard() functions fails (e.g. returns -1), what does that imply for the debugged program?What measures should a programmer take when such failures are met?
I was asked to take a look at a failure of a test that I wrote many years ago. This failure was, as far as we could tell, new, but it didn’t look like a regression. The test was multi-threaded with asynchronous signals using setitimer() to fire SIGALRMs at it. It appeared to have completed successfully, but at the end it printed a “test succeeded” message which our test system was expecting to see, only it didn’t appear. Happily our test system had saved a recording of the debuggee. Turns out that the printf(“test succeeded”) had been interrupted by a SIGALRM and so returned -EINTR. Actually it was more complicated than that - the compiler had turned the printf() into a puts(), which returns zero if it fails. This took 10-20 mins of head scratching with the recording, a few minutes thinking I was looking at a libc bug, but it was pretty straightforward really. So my challenge is - how would you go about debugging that _without_ a recording?
Recently while investigating an issue for a customer I noticed the following: (udb) ugo event prev name=='write'going to: ref=0x1fc054f4c170 in_code=0 time_bbcount=223466223298 time_extra=18446744073709551615 code=write size=80 result=70x00007f4fc89e0c0b in write () from /tmp/undodb.8444.1617966303.9400325.18ca8bac04951ecc/debuggee-1-bamqf2b_/symbol-files/lib64/libpthread.so.0OK(udb) ugo event prev name=='write'going to: ref=0x1fc054f4c0b8 in_code=0 time_bbcount=223466223040 time_extra=18446744073709551615 code=write size=80 result=6[Switching to Thread 12978.12978]0x00007f4fc3843f81 in epoll_wait () from /tmp/undodb.8444.1617966303.9400325.18ca8bac04951ecc/debuggee-1-bamqf2b_/symbol-files/lib64/libc.so.6WHAT?(udb) ugo event prev name=='write'going to: ref=0x1fc0540a8d00 in_code=0 time_bbcount=223403831487 time_extra=18446744073709551615 code=write size=80 result=8[Switching to Thread 12978.13072]0x00007f4fc38367ab in write () from /tmp/undodb.8444.1617966303.9400325.18ca8bac04951ecc/d
Already have an account? Login
Login to the community
No account yet? Create an account
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.