)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"dbf3843fe5c9ba7f843422b6ec4050f61aea6e19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cab090b9_12367b60","updated":"2022-09-04 19:02:56.000000000","message":"Hi Antonio, Ian,\n\nAlthough I have some TODOs, such as big endian host support, valgrind and regression tests, can I ask for a rough review if this patch needs to be splitted to smaller pieces? Or if there are other points that need to be refactored?","commit_id":"492945ab337a25b2333e1b84fca6c4f0257d47e6"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"df8987cddb60e8389842d5632dc3bdc7cb4fb3b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"26c9dbe8_b7af7740","updated":"2022-09-06 13:35:19.000000000","message":"Hi, Erhan, Thanks for all your work to add trace support!  It\u0027s great to see this useful feature going into OOCD.  I support adding this, and although I haven\u0027t reviewed it in detail, have a couple of big-picture comments/questions:\n\n- It seems like most or all of this code could be useful for generic Xtensa targets as well, presuming they have trace configured (which might also be good to check during an init function somewhere).  What do you think about moving some or perhaps even most of this code into src/target/xtensa/ instead of espressif/?  Or is there a dependency on some other Espressif tools/features/HW in this implementation that would prevent that?  If there is, perhaps some portions (perhaps the trax controller logic?) could at least be moved into the Xtensa tree so we could eventually implement something similar for generic Xtensa too? \n\n- The way our Xtensa tools manage trace is as a separate application-layer utility that sits parallel to the GDB server logic.  While I\u0027ll defer to Antonio\u0027s expertise here, it seems like some of the trace control/output management code might be useful for other targets/systems that have some sort of trace support (perhaps ARM)?  Does refactoring any of those bits to live above Xtensa/Espressif layers make sense, or is it neater to keep all of this code constrained to these targets?\n\nIf you think that moving some of this code might be a good eventual plan for this feature, but would rather do that as a future step, I\u0027m open to getting this code in as an ESP-specific feature for starters, and we could migrate it (e.g. to generic Xtensa) later.  What are your thoughts on this?\n\nThanks,\n--ian\n","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"80a65a4e6a1ef75ed8e9d499745dbefddf93ea13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"29e5bf05_5932dc4d","in_reply_to":"23aa4437_aaa52276","updated":"2022-09-07 07:29:38.000000000","message":"Hi Ian, We can move the generic parts to the Xtensa layer and create an initial patch. Then another patch for the Espressif specific flow. \nLet\u0027s discuss the details offline.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3eb6c0e0bec2a7e2c3a8d98d3a0f41690ca428c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"23aa4437_aaa52276","in_reply_to":"26c9dbe8_b7af7740","updated":"2022-09-06 15:24:49.000000000","message":"if this is a generic Xtensa feature, I would prefer having it from the beginning in xtensa folder; file move or rename is always a problem while checking git history.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"76235282_abebcce8","updated":"2023-01-21 22:40:55.000000000","message":"big and complicated patch. I will need to review it again more carefully","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"11ebfc317ee10232f59736ab8e581220825302e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"42baccf3_a9f64760","updated":"2023-03-08 08:17:13.000000000","message":"Hi Antonio, \nAny chance to continue to review? I\u0027ll have 2 more patches dependent on this. (gcov and segger sysview support)","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0eb45fb0eca95f5c379cfbcab9aa58620c697ffa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"c57efef5_198e33a8","updated":"2023-03-15 10:26:33.000000000","message":"one more comment on the code.\n\nWhat do you think about my proposal to migrate from hlist_* to list_head?\nI have prepared a patch to drop hlist_*, but I\u0027m hesitating to send it out to avoid breaking your patch.\nIf you prefer, it could be done in three steps, first merging this 7163, then migrating it and finally dropping hlist_*. But in any case I would need your help for this code","commit_id":"5b4b12f7d7a8d1b39a75ed56645a19a059447851"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0b2e2ef4d95be8e479baf8c30fac76881ca557fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"da1897b1_6f53619b","in_reply_to":"c57efef5_198e33a8","updated":"2023-03-15 10:36:30.000000000","message":"I couldn\u0027t have a look at your hlist comments in detail yet.But I am ok with your proposal in this patch. I will make the necessary changes later today.","commit_id":"5b4b12f7d7a8d1b39a75ed56645a19a059447851"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"926004a5750fd703801f9c658a3f34548b95e8a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"fdc41e64_f7484d27","updated":"2023-03-21 20:49:46.000000000","message":"@Antonio, I have replaced hlist_* with list_* . tested internally. Looks fine.","commit_id":"0860df1924426dcb92eecec9801d2cc142c1848a"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"22c106bf4524380452ef78ac42a61d4e5130ce89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"8cca0b10_293b2de8","updated":"2023-03-22 09:51:02.000000000","message":"Antonio, I tried to address all your comments. I left 2 of them as unresolved. Please take another look. ","commit_id":"4301ffbfcf832d7908870de1de5e3c6e4d72a229"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d186482c33d5853c53184eaf4b09eda7d09c2b32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"68ade391_f463d8eb","updated":"2023-04-01 21:12:22.000000000","message":"Few comments left, then it looks ok for me.\nThanks for the effort on removing hlist.","commit_id":"088972159277aca0391955dfd34cf69cbc977415"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"18ec74b7fc1df28b7d92432547f583382bcd1c3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"0e2e4d35_1c76c0a9","updated":"2023-04-08 09:14:03.000000000","message":"Jenkins lost the trigger and didn\u0027t auto-built it! I had to retrigger it manually.\nIf you see this happening again, just let me know.","commit_id":"a6a983dc100ceca42910fd65cdf037bda979d1dc"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"f370c69b3f8233e15f92c4ed219814559e330ee4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"dfcda81c_e9e9aa8f","updated":"2023-04-08 09:13:46.000000000","message":"Jenkins lost the trigger and didn\u0027t auto-built it! I had to retrigger it manually.\nIf you see this happening again, just let me know.","commit_id":"a6a983dc100ceca42910fd65cdf037bda979d1dc"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"da2bcd38130913b9ca2e4daab9669196c84345a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"69d4b63e_cb597760","updated":"2023-04-01 22:12:13.000000000","message":"Thank you Antonio","commit_id":"a6a983dc100ceca42910fd65cdf037bda979d1dc"}],"doc/openocd.texi":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3eb6c0e0bec2a7e2c3a8d98d3a0f41690ca428c4","unresolved":true,"context_lines":[{"line_number":11160,"context_line":"@item @code{trace_size} - maximum trace data size."},{"line_number":11161,"context_line":"Tracing will be stopped automatically when that amount is reached."},{"line_number":11162,"context_line":"Use \"-1\" to disable the limitation."},{"line_number":11163,"context_line":"@item @code{stop_tmo} - Data receiption timeout in ms."},{"line_number":11164,"context_line":"Tracing will be stopped automatically when no data is received withn that period."},{"line_number":11165,"context_line":"@item @code{wait4halt} - if non-zero then wait for target to be halted before tracing start."},{"line_number":11166,"context_line":"@item @code{skip_size} - amount of tracing data to be skipped before writing it to destination."}],"source_content_type":"text/x-texinfo","patch_set":4,"id":"c94a51ff_4b7d87eb","line":11163,"updated":"2022-09-06 15:24:49.000000000","message":"typo s/receiption/reception/","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"7740f8fabd7a73980512f72d34ce456beb570143","unresolved":false,"context_lines":[{"line_number":11160,"context_line":"@item @code{trace_size} - maximum trace data size."},{"line_number":11161,"context_line":"Tracing will be stopped automatically when that amount is reached."},{"line_number":11162,"context_line":"Use \"-1\" to disable the limitation."},{"line_number":11163,"context_line":"@item @code{stop_tmo} - Data receiption timeout in ms."},{"line_number":11164,"context_line":"Tracing will be stopped automatically when no data is received withn that period."},{"line_number":11165,"context_line":"@item @code{wait4halt} - if non-zero then wait for target to be halted before tracing start."},{"line_number":11166,"context_line":"@item @code{skip_size} - amount of tracing data to be skipped before writing it to destination."}],"source_content_type":"text/x-texinfo","patch_set":4,"id":"ab09afb3_a06c35e2","line":11163,"in_reply_to":"c94a51ff_4b7d87eb","updated":"2022-10-06 14:26:30.000000000","message":"Done","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3eb6c0e0bec2a7e2c3a8d98d3a0f41690ca428c4","unresolved":true,"context_lines":[{"line_number":11161,"context_line":"Tracing will be stopped automatically when that amount is reached."},{"line_number":11162,"context_line":"Use \"-1\" to disable the limitation."},{"line_number":11163,"context_line":"@item @code{stop_tmo} - Data receiption timeout in ms."},{"line_number":11164,"context_line":"Tracing will be stopped automatically when no data is received withn that period."},{"line_number":11165,"context_line":"@item @code{wait4halt} - if non-zero then wait for target to be halted before tracing start."},{"line_number":11166,"context_line":"@item @code{skip_size} - amount of tracing data to be skipped before writing it to destination."},{"line_number":11167,"context_line":"@end itemize"}],"source_content_type":"text/x-texinfo","patch_set":4,"id":"c5abd733_60a7d40f","line":11164,"updated":"2022-09-06 15:24:49.000000000","message":"typo s/withn/within/","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"7740f8fabd7a73980512f72d34ce456beb570143","unresolved":false,"context_lines":[{"line_number":11161,"context_line":"Tracing will be stopped automatically when that amount is reached."},{"line_number":11162,"context_line":"Use \"-1\" to disable the limitation."},{"line_number":11163,"context_line":"@item @code{stop_tmo} - Data receiption timeout in ms."},{"line_number":11164,"context_line":"Tracing will be stopped automatically when no data is received withn that period."},{"line_number":11165,"context_line":"@item @code{wait4halt} - if non-zero then wait for target to be halted before tracing start."},{"line_number":11166,"context_line":"@item @code{skip_size} - amount of tracing data to be skipped before writing it to destination."},{"line_number":11167,"context_line":"@end itemize"}],"source_content_type":"text/x-texinfo","patch_set":4,"id":"b3d0a336_b50543b9","line":11164,"in_reply_to":"c5abd733_60a7d40f","updated":"2022-10-06 14:26:30.000000000","message":"Done","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"}],"src/Makefile.am":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3eb6c0e0bec2a7e2c3a8d98d3a0f41690ca428c4","unresolved":true,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"%C%_openocd_LDADD +\u003d -lpthread"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":26,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"d3eade3a_2537c0ee","line":23,"updated":"2022-09-06 15:24:49.000000000","message":"so far OpenOCD is a single thread application.\nIt uses an internal scheduler for polling data from target (e.g. see src/target/arm_tpiu_swo.c).\nI will check the rest of this patch, but I\u0027m afraid multi threading would break the access sequence to jtag.\nI see extensive use of mutex in this patch, but this would be not enough in case of SoC with, e.g. one Xtensa plus one Cortex_M; this approach would require rewriting OpenOCD.\nPlease have a look at the file arm_tpiu_swo above, while I check this patch; let\u0027s check if we the existing method can be used here too.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"5b5d20bcede431530ea49fcba18cc5fcab3fff9e","unresolved":true,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"%C%_openocd_LDADD +\u003d -lpthread"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":26,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"2679106c_10fee671","line":23,"in_reply_to":"1c0ec61a_4e6833d9","updated":"2022-10-06 14:19:38.000000000","message":"In the PS-5 I removed the pthread dependency and used timer callback with zero ms timeout. Initial tests are fine. I think now we can make some progress on the review cycle.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d389efafa899f3268743ba1e295a3e9d177995fd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"%C%_openocd_LDADD +\u003d -lpthread"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":26,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"c80c15eb_d4363eda","line":23,"in_reply_to":"2679106c_10fee671","updated":"2022-10-25 12:50:53.000000000","message":"Tests are passed in our side.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"de3d456837a0980b84aa80a8d108bc8fe67fe064","unresolved":false,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"%C%_openocd_LDADD +\u003d -lpthread"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":26,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"01c9aef9_84d2c3c7","line":23,"in_reply_to":"c80c15eb_d4363eda","updated":"2023-01-17 19:41:25.000000000","message":"@Antonio, as I see, we turned back to normal development cycle. Can you please continue to review when you have time? It will be good to start where we left off. Still lots of dependent patches waiting to create.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"80a65a4e6a1ef75ed8e9d499745dbefddf93ea13","unresolved":true,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"%C%_openocd_LDADD +\u003d -lpthread"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":26,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"fe4612c8_5887f530","line":23,"in_reply_to":"d3eade3a_2537c0ee","updated":"2022-09-07 07:29:38.000000000","message":"I think we can use the similar timer callback with the minimum timeout (zero) \nI\u0027ll change that parts and update the patch.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1002036,"name":"Alexey Gerenkov","email":"alexey@espressif.com","username":"gerekon"},"change_message_id":"fcc9918c7bf178939d29b909bce6d2726e6fa84d","unresolved":true,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"%C%_openocd_LDADD +\u003d -lpthread"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":26,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"1c0ec61a_4e6833d9","line":23,"in_reply_to":"fe4612c8_5887f530","updated":"2022-09-07 13:54:14.000000000","message":"Yes. Looks like timer callback is feasible solution. Initially polling in separate thread was implemented to reach max possible speed for data transfer from target. This can be critical for system (or even lower) level tracing because target buffers are limited in size.\nWith timer callbacks data processing (saving to file) and polling in timer callbacks will be done sequentially in main loop, one by one. So it can have an impact on max data transfer speed.","commit_id":"01e7fa538010bd5f32140d332387f036ed8ac0d1"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# banner output includes RELSTR appended to $VERSION from the configure script"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"c5b122a2_0885c22c","line":23,"updated":"2023-01-21 22:40:55.000000000","message":"please remove this unrelated change","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":false,"context_lines":[{"line_number":20,"context_line":"%C%_openocd_LDADD +\u003d -ljim"},{"line_number":21,"context_line":"endif"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"%C%_libopenocd_la_CPPFLAGS \u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# banner output includes RELSTR appended to $VERSION from the configure script"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"1391af71_6e345d7d","line":23,"in_reply_to":"c5b122a2_0885c22c","updated":"2023-01-22 20:19:52.000000000","message":"Done","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"}],"src/target/espressif/esp32_apptrace.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":157,"context_line":"static int esp32_apptrace_tcp_dest_write(void *priv, uint8_t *data, int size)"},{"line_number":158,"context_line":"{"},{"line_number":159,"context_line":"\tstruct esp32_apptrace_dest_tcp_data *dest_data \u003d (struct esp32_apptrace_dest_tcp_data *)priv;"},{"line_number":160,"context_line":"\tint wr_sz \u003d write(dest_data-\u003esockfd, data, size);"},{"line_number":161,"context_line":"\tif (wr_sz !\u003d size) {"},{"line_number":162,"context_line":"\t\tLOG_ERROR(\"Failed to write %u bytes to out socket (%d)! Written %d.\", size, errno, wr_sz);"},{"line_number":163,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"129f0279_3917e0b5","line":160,"updated":"2023-01-21 22:40:55.000000000","message":"I\u0027m surprised.\nWe have the functions write_socket() and read_socket() to handle the cases Windows or Posix.\nHere you directly use write() that for write_socket() should not work with Windows.\nhttps://stackoverflow.com/questions/4778043/winsock-not-supporting-read-write\nYou indirectly include winsock2.h  by including target.h and server.h\nDid you tested it on Windows? On which Windows version with which compiler?\nBecause if we can get rid of all the write_socket() and read_socket(), that would be a good cleanup for OpenOCD.","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"5e1072bc6f7796143e8b8b60a2e331d3ea3066ce","unresolved":true,"context_lines":[{"line_number":157,"context_line":"static int esp32_apptrace_tcp_dest_write(void *priv, uint8_t *data, int size)"},{"line_number":158,"context_line":"{"},{"line_number":159,"context_line":"\tstruct esp32_apptrace_dest_tcp_data *dest_data \u003d (struct esp32_apptrace_dest_tcp_data *)priv;"},{"line_number":160,"context_line":"\tint wr_sz \u003d write(dest_data-\u003esockfd, data, size);"},{"line_number":161,"context_line":"\tif (wr_sz !\u003d size) {"},{"line_number":162,"context_line":"\t\tLOG_ERROR(\"Failed to write %u bytes to out socket (%d)! Written %d.\", size, errno, wr_sz);"},{"line_number":163,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"2b13a29f_1d8ca700","line":160,"in_reply_to":"129f0279_3917e0b5","updated":"2023-01-22 21:52:30.000000000","message":"We use i686-w64-mingw32-gcc (GCC) 6.3.0 20170516 to build. \n\nThis is long time feature and I don\u0027t remember an issue coming from the users. Maybe they didn\u0027t use it on Windows. I will test it and return.","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"4a73c8ee56b7b95d553a8128c4c6d08b937c482c","unresolved":false,"context_lines":[{"line_number":157,"context_line":"static int esp32_apptrace_tcp_dest_write(void *priv, uint8_t *data, int size)"},{"line_number":158,"context_line":"{"},{"line_number":159,"context_line":"\tstruct esp32_apptrace_dest_tcp_data *dest_data \u003d (struct esp32_apptrace_dest_tcp_data *)priv;"},{"line_number":160,"context_line":"\tint wr_sz \u003d write(dest_data-\u003esockfd, data, size);"},{"line_number":161,"context_line":"\tif (wr_sz !\u003d size) {"},{"line_number":162,"context_line":"\t\tLOG_ERROR(\"Failed to write %u bytes to out socket (%d)! Written %d.\", size, errno, wr_sz);"},{"line_number":163,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"413cc717_6426a106","line":160,"in_reply_to":"2b13a29f_1d8ca700","updated":"2023-01-24 11:51:53.000000000","message":"Antonio, You are right. I needed to switch \"write_socket()\" and \"close_socket()\". \"write()\" and \"close()\" not works on windows. Thanks for your heads up on this.\n\nI\u0027m sorry we missed the opportunity to refactoring.","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":183,"context_line":"\t\tLOG_ERROR(\"apptrace: Invalid connection URI, format should be tcp://host:port\");"},{"line_number":184,"context_line":"\t\treturn ERROR_COMMAND_ARGUMENT_INVALID;"},{"line_number":185,"context_line":"\t}"},{"line_number":186,"context_line":"\tassert(port_sep \u003e dest_name);"},{"line_number":187,"context_line":"\tsize_t hostname_len \u003d port_sep - dest_name;"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"\tchar hostname[64] \u003d { 0 };"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"a60a5ebd_eced1ded","line":186,"updated":"2023-01-21 22:40:55.000000000","message":"this assert is always true. Please remove it as it only rises confusion.\nIf you added it to silent the compiler or build-scan for a warning in following lines, then please add a comment above","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":false,"context_lines":[{"line_number":183,"context_line":"\t\tLOG_ERROR(\"apptrace: Invalid connection URI, format should be tcp://host:port\");"},{"line_number":184,"context_line":"\t\treturn ERROR_COMMAND_ARGUMENT_INVALID;"},{"line_number":185,"context_line":"\t}"},{"line_number":186,"context_line":"\tassert(port_sep \u003e dest_name);"},{"line_number":187,"context_line":"\tsize_t hostname_len \u003d port_sep - dest_name;"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"\tchar hostname[64] \u003d { 0 };"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"09f0f510_38db2b74","line":186,"in_reply_to":"a60a5ebd_eced1ded","updated":"2023-01-22 20:19:52.000000000","message":"Done","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":217,"context_line":"\t\t\tLOG_DEBUG(\"apptrace: Failed to create socket (%d, %d, %d) (%s)\","},{"line_number":218,"context_line":"\t\t\t\t(int)ai_it-\u003eai_family,"},{"line_number":219,"context_line":"\t\t\t\t(int)ai_it-\u003eai_socktype,"},{"line_number":220,"context_line":"\t\t\t\t(int)ai_it-\u003eai_protocol,"},{"line_number":221,"context_line":"\t\t\t\tstrerror(errno));"},{"line_number":222,"context_line":"\t\t\tcontinue;"},{"line_number":223,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"0983fbf1_0cf487e9","line":220,"updated":"2023-01-21 22:40:55.000000000","message":"Either Linux, OpenBSD, FreeBSD and MinGW32 have these three struct fields declared as \u0027int\u0027, so no need for the cast. Do you need the cast for some other use case?","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":false,"context_lines":[{"line_number":217,"context_line":"\t\t\tLOG_DEBUG(\"apptrace: Failed to create socket (%d, %d, %d) (%s)\","},{"line_number":218,"context_line":"\t\t\t\t(int)ai_it-\u003eai_family,"},{"line_number":219,"context_line":"\t\t\t\t(int)ai_it-\u003eai_socktype,"},{"line_number":220,"context_line":"\t\t\t\t(int)ai_it-\u003eai_protocol,"},{"line_number":221,"context_line":"\t\t\t\tstrerror(errno));"},{"line_number":222,"context_line":"\t\t\tcontinue;"},{"line_number":223,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"bd9cefce_02d80a15","line":220,"in_reply_to":"0983fbf1_0cf487e9","updated":"2023-01-22 20:19:52.000000000","message":"Done","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":1261,"context_line":"\t\tLOG_ERROR(\"Failed to cleanup cmd ctx (%d)!\", res);"},{"line_number":1262,"context_line":"}"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"int esp32_cmd_apptrace_generic(struct target *target, int mode, const char **argv, int argc)"},{"line_number":1265,"context_line":"{"},{"line_number":1266,"context_line":"\tstatic struct esp32_apptrace_cmd_ctx s_at_cmd_ctx;"},{"line_number":1267,"context_line":"\tstruct esp32_apptrace_cmd_data *cmd_data;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"e28066f3_eb7401df","line":1264,"updated":"2023-01-21 22:40:55.000000000","message":"You call this function from COMMAND_HANDLER(esp32_cmd_apptrace)\nI don\u0027t understand why you do this, instead of simply putting this code inside COMMAND_HANDLER(esp32_cmd_apptrace), but that\u0027s not the key point.\nCommands should NOT abuse of LOG_ERROR() to return error messages. LOG_XX are for logging, not for command result.\nMoving below:","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"\t\tLOG_ERROR(\"Failed to cleanup cmd ctx (%d)!\", res);"},{"line_number":1262,"context_line":"}"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"int esp32_cmd_apptrace_generic(struct target *target, int mode, const char **argv, int argc)"},{"line_number":1265,"context_line":"{"},{"line_number":1266,"context_line":"\tstatic struct esp32_apptrace_cmd_ctx s_at_cmd_ctx;"},{"line_number":1267,"context_line":"\tstruct esp32_apptrace_cmd_data *cmd_data;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"48d51df3_41a629d5","line":1264,"in_reply_to":"e28066f3_eb7401df","updated":"2023-01-22 20:19:52.000000000","message":"It is because we will have another commands in the upcoming patches. \n\nCOMMAND_HANDLER(esp32_cmd_sysview)\n{\n\treturn esp32_cmd_apptrace_generic(get_current_target(CMD_CTX),\n\t\tESP_APPTRACE_CMD_MODE_SYSVIEW,\n\t\tCMD_ARGV,\n\t\tCMD_ARGC);\n}\n\nCOMMAND_HANDLER(esp32_cmd_sysview_mcore)\n{\n\treturn esp32_cmd_apptrace_generic(get_current_target(CMD_CTX),\n\t\tESP_APPTRACE_CMD_MODE_SYSVIEW_MCORE,\n\t\tCMD_ARGV,\n\t\tCMD_ARGC);\n}","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"\tif (argc \u003c 1) {"},{"line_number":1272,"context_line":"\t\tLOG_ERROR(\"Action missed!\");"},{"line_number":1273,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1274,"context_line":"\t}"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"\t/* command can be invoked on unexamined core, if so find examined one */"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"926c4962_969a909d","line":1273,"updated":"2023-01-21 22:40:55.000000000","message":"Returning ERROR_COMMAND_SYNTAX_ERROR we already trigger a default command return message. No need for the LOG_ERROR() above","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":false,"context_lines":[{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"\tif (argc \u003c 1) {"},{"line_number":1272,"context_line":"\t\tLOG_ERROR(\"Action missed!\");"},{"line_number":1273,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1274,"context_line":"\t}"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"\t/* command can be invoked on unexamined core, if so find examined one */"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"d405c73c_c504e303","line":1273,"in_reply_to":"926c4962_969a909d","updated":"2023-01-22 20:19:52.000000000","message":"Done","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":1296,"context_line":"\t\t\t\u0026argv[1],"},{"line_number":1297,"context_line":"\t\t\targc - 1);"},{"line_number":1298,"context_line":"\t\tif (res !\u003d ERROR_OK) {"},{"line_number":1299,"context_line":"\t\t\tLOG_ERROR(\"Failed to init cmd ctx (%d)!\", res);"},{"line_number":1300,"context_line":"\t\t\treturn res;"},{"line_number":1301,"context_line":"\t\t}"},{"line_number":1302,"context_line":"\t\tcmd_data \u003d s_at_cmd_ctx.cmd_priv;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"8977cd40_4725f44a","line":1299,"updated":"2023-01-21 22:40:55.000000000","message":"Error messages from a command should be passed through command_print(), not through LOG_XXX","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"5e1072bc6f7796143e8b8b60a2e331d3ea3066ce","unresolved":false,"context_lines":[{"line_number":1296,"context_line":"\t\t\t\u0026argv[1],"},{"line_number":1297,"context_line":"\t\t\targc - 1);"},{"line_number":1298,"context_line":"\t\tif (res !\u003d ERROR_OK) {"},{"line_number":1299,"context_line":"\t\t\tLOG_ERROR(\"Failed to init cmd ctx (%d)!\", res);"},{"line_number":1300,"context_line":"\t\t\treturn res;"},{"line_number":1301,"context_line":"\t\t}"},{"line_number":1302,"context_line":"\t\tcmd_data \u003d s_at_cmd_ctx.cmd_priv;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"5780e220_d6aec413","line":1299,"in_reply_to":"7035a5a0_c742158e","updated":"2023-01-22 21:52:30.000000000","message":"I think now it is OK. Basically, in an error case, if a message needs to be printed and execution needs to be stopped, I used command_print. If there is an error/warning but the execution doesn\u0027t need to stop, I used LOG_XX","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":true,"context_lines":[{"line_number":1296,"context_line":"\t\t\t\u0026argv[1],"},{"line_number":1297,"context_line":"\t\t\targc - 1);"},{"line_number":1298,"context_line":"\t\tif (res !\u003d ERROR_OK) {"},{"line_number":1299,"context_line":"\t\t\tLOG_ERROR(\"Failed to init cmd ctx (%d)!\", res);"},{"line_number":1300,"context_line":"\t\t\treturn res;"},{"line_number":1301,"context_line":"\t\t}"},{"line_number":1302,"context_line":"\t\tcmd_data \u003d s_at_cmd_ctx.cmd_priv;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"7035a5a0_c742158e","line":1299,"in_reply_to":"8977cd40_4725f44a","updated":"2023-01-22 20:19:52.000000000","message":"Replaced all LOG_ERRORs with command_print. I will re-check this part.","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":1357,"context_line":"\t\t}"},{"line_number":1358,"context_line":"\t\tif (s_at_cmd_ctx.running) {"},{"line_number":1359,"context_line":"\t\t\t/* data processor is alive, so wait for all received blocks to be processed"},{"line_number":1360,"context_line":"\t\t\t * */"},{"line_number":1361,"context_line":"\t\t\tres \u003d esp32_apptrace_wait_tracing_finished(\u0026s_at_cmd_ctx);"},{"line_number":1362,"context_line":"\t\t\tif (res !\u003d ERROR_OK)"},{"line_number":1363,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to wait for pended blocks (%d)!\", res);"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"eac932b6_7d93683f","line":1360,"updated":"2023-01-21 22:40:55.000000000","message":"comment can stay in a single line","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":false,"context_lines":[{"line_number":1357,"context_line":"\t\t}"},{"line_number":1358,"context_line":"\t\tif (s_at_cmd_ctx.running) {"},{"line_number":1359,"context_line":"\t\t\t/* data processor is alive, so wait for all received blocks to be processed"},{"line_number":1360,"context_line":"\t\t\t * */"},{"line_number":1361,"context_line":"\t\t\tres \u003d esp32_apptrace_wait_tracing_finished(\u0026s_at_cmd_ctx);"},{"line_number":1362,"context_line":"\t\t\tif (res !\u003d ERROR_OK)"},{"line_number":1363,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to wait for pended blocks (%d)!\", res);"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"be4a4db4_64c7b00c","line":1360,"in_reply_to":"eac932b6_7d93683f","updated":"2023-01-22 20:19:52.000000000","message":"Done","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":269,"context_line":"\tunsigned int i;"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"\tfor (i \u003d 0; i \u003c max_dests; i++) {"},{"line_number":272,"context_line":"\t\tif (strncmp(dest_paths[i], \"file://\", 7) \u003d\u003d 0)"},{"line_number":273,"context_line":"\t\t\tres \u003d esp32_apptrace_file_dest_init(\u0026dest[i], \u0026dest_paths[i][7]);"},{"line_number":274,"context_line":"\t\telse if (strncmp(dest_paths[i], \"con:\", 4) \u003d\u003d 0)"},{"line_number":275,"context_line":"\t\t\tres \u003d esp32_apptrace_console_dest_init(\u0026dest[i], NULL);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"4b0e3563_2d5c7a6e","line":272,"updated":"2023-03-14 13:33:40.000000000","message":"here you check for \u0027file://\u0027, \u0027con:\u0027 and \u0027tcp://\u0027, but the description of the command in help and in doc/openocd.texi only mention \u0027file://\u0027","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"ee2e2e20cb827e3733ada21b3b39f23a5d9c733d","unresolved":false,"context_lines":[{"line_number":269,"context_line":"\tunsigned int i;"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"\tfor (i \u003d 0; i \u003c max_dests; i++) {"},{"line_number":272,"context_line":"\t\tif (strncmp(dest_paths[i], \"file://\", 7) \u003d\u003d 0)"},{"line_number":273,"context_line":"\t\t\tres \u003d esp32_apptrace_file_dest_init(\u0026dest[i], \u0026dest_paths[i][7]);"},{"line_number":274,"context_line":"\t\telse if (strncmp(dest_paths[i], \"con:\", 4) \u003d\u003d 0)"},{"line_number":275,"context_line":"\t\t\tres \u003d esp32_apptrace_console_dest_init(\u0026dest[i], NULL);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"94ecbcca_e089c733","line":272,"in_reply_to":"4b0e3563_2d5c7a6e","updated":"2023-03-22 07:57:26.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":308,"context_line":"\tstruct hlist_head *head \u003d \u0026ctx-\u003efree_trace_blocks;"},{"line_number":309,"context_line":"\tstruct hlist_node *tmp, *pos \u003d head-\u003efirst;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\twhile (pos \u0026\u0026 ({ tmp \u003d pos-\u003enext; 1; })) {"},{"line_number":312,"context_line":"\t\tcur \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":313,"context_line":"\t\tif (cur) {"},{"line_number":314,"context_line":"\t\t\thlist_del(\u0026cur-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"82d0abbc_624f9f93","line":311,"updated":"2023-03-14 13:33:40.000000000","message":"here you destroy entries in the hlist. Use\nhlist_for_each_safe(pos, tmp, head) {","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"658190a91629d3e983e900563e252fbb57d3c0fa","unresolved":false,"context_lines":[{"line_number":308,"context_line":"\tstruct hlist_head *head \u003d \u0026ctx-\u003efree_trace_blocks;"},{"line_number":309,"context_line":"\tstruct hlist_node *tmp, *pos \u003d head-\u003efirst;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\twhile (pos \u0026\u0026 ({ tmp \u003d pos-\u003enext; 1; })) {"},{"line_number":312,"context_line":"\t\tcur \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":313,"context_line":"\t\tif (cur) {"},{"line_number":314,"context_line":"\t\t\thlist_del(\u0026cur-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"34c07d46_03d74376","line":311,"in_reply_to":"82d0abbc_624f9f93","updated":"2023-03-14 22:08:13.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":321,"context_line":"\thead \u003d \u0026ctx-\u003eready_trace_blocks;"},{"line_number":322,"context_line":"\tpos \u003d head-\u003efirst;"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"\twhile (pos \u0026\u0026 ({ tmp \u003d pos-\u003enext; 1; })) {"},{"line_number":325,"context_line":"\t\tcur \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":326,"context_line":"\t\tif (cur) {"},{"line_number":327,"context_line":"\t\t\thlist_del(\u0026cur-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ee085cc9_4f81a244","line":324,"updated":"2023-03-14 13:33:40.000000000","message":"here too","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"658190a91629d3e983e900563e252fbb57d3c0fa","unresolved":false,"context_lines":[{"line_number":321,"context_line":"\thead \u003d \u0026ctx-\u003eready_trace_blocks;"},{"line_number":322,"context_line":"\tpos \u003d head-\u003efirst;"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"\twhile (pos \u0026\u0026 ({ tmp \u003d pos-\u003enext; 1; })) {"},{"line_number":325,"context_line":"\t\tcur \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":326,"context_line":"\t\tif (cur) {"},{"line_number":327,"context_line":"\t\t\thlist_del(\u0026cur-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a6746953_95f9abc7","line":324,"in_reply_to":"ee085cc9_4f81a244","updated":"2023-03-14 22:08:13.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":364,"context_line":"\t\tstruct hlist_node *pos \u003d head-\u003efirst;"},{"line_number":365,"context_line":"\t\twhile (pos) {"},{"line_number":366,"context_line":"\t\t\tblock \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":367,"context_line":"\t\t\tpos \u003d pos-\u003enext;"},{"line_number":368,"context_line":"\t\t}"},{"line_number":369,"context_line":"\t\t/* remove it from ready list */"},{"line_number":370,"context_line":"\t\thlist_del(\u0026block-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"3b631e44_0e20672d","line":367,"updated":"2023-03-14 13:33:40.000000000","message":"here you are looking for the last entry in the list.\nIf you use list_head, instead of hlist_head/hlist_node, then accessing the last entry gets trivial (not tested):\n if (list_empty(\u0026ctx-\u003eready_trace_blocks))\n   return NULL;\n // can list_prev_entry() be used?\n pos \u003d ctx-\u003eready_trace_blocks.prev;\n block \u003d hlist_entry(pos, struct esp32_apptrace_block, node);\n list_del(\u0026block-\u003enode);\n\nI\u0027m really thinking about dropping hlist_head/hlist_node and simplify helper/list.h.\nThe only benefit of hlist_* is that the head is half size wrt list_head. But the real memory consumer is the node, that has same size.\nI think that having to many options in helper/list.h makes it difficult for newbie to start using it.\nSo far, this is the first code that uses hlist_*. Do you see any issue in switching to list_head?","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"926004a5750fd703801f9c658a3f34548b95e8a8","unresolved":false,"context_lines":[{"line_number":364,"context_line":"\t\tstruct hlist_node *pos \u003d head-\u003efirst;"},{"line_number":365,"context_line":"\t\twhile (pos) {"},{"line_number":366,"context_line":"\t\t\tblock \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":367,"context_line":"\t\t\tpos \u003d pos-\u003enext;"},{"line_number":368,"context_line":"\t\t}"},{"line_number":369,"context_line":"\t\t/* remove it from ready list */"},{"line_number":370,"context_line":"\t\thlist_del(\u0026block-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"eefa8eed_d76a1437","line":367,"in_reply_to":"3b631e44_0e20672d","updated":"2023-03-21 20:49:46.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":437,"context_line":"\tconst char *arch \u003d target_get_gdb_arch(target);"},{"line_number":438,"context_line":"\tif (arch) {"},{"line_number":439,"context_line":"\t\t/* TODO: riscv is not supported yet */"},{"line_number":440,"context_line":"\t\tif (strncmp(arch, \"xtensa\", 6) \u003d\u003d 0) {"},{"line_number":441,"context_line":"\t\t\tcmd_ctx-\u003ehw \u003d target_to_esp_xtensa(target)-\u003eapptrace.hw;"},{"line_number":442,"context_line":"\t\t} else {"},{"line_number":443,"context_line":"\t\t\tLOG_ERROR(\"Unsupported target arch \u0027%s\u0027!\", arch);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"87006f5e_a381564b","line":440,"updated":"2023-03-14 13:33:40.000000000","message":"The value returned by target_get_gdb_arch() is something specific for GDB.\nThere could be several variants of the same CPU; check what GDB for xtensa reports when you write \"set architecture \" and press TAB twice.\nChecking the string value, here, could become incorrect if we start implementing all the variants.\nIt\u0027s better to check for xtensa-\u003ecommon_magic \u003d\u003d XTENSA_COMMON_MAGIC\nI don\u0027t know if you need a specific ESP_XTENSA_COMMON_MAGIC\n\nI also see this same mistake is in target_to_esp_semihost_data(). Would you mind fixing it in a separate patch?","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":true,"context_lines":[{"line_number":437,"context_line":"\tconst char *arch \u003d target_get_gdb_arch(target);"},{"line_number":438,"context_line":"\tif (arch) {"},{"line_number":439,"context_line":"\t\t/* TODO: riscv is not supported yet */"},{"line_number":440,"context_line":"\t\tif (strncmp(arch, \"xtensa\", 6) \u003d\u003d 0) {"},{"line_number":441,"context_line":"\t\t\tcmd_ctx-\u003ehw \u003d target_to_esp_xtensa(target)-\u003eapptrace.hw;"},{"line_number":442,"context_line":"\t\t} else {"},{"line_number":443,"context_line":"\t\t\tLOG_ERROR(\"Unsupported target arch \u0027%s\u0027!\", arch);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"fb814558_730e0781","line":440,"in_reply_to":"87006f5e_a381564b","updated":"2023-03-14 21:34:38.000000000","message":"target_get_gdb_arch() points to target-\u003etype-\u003eget_gdb_arch(target);\n\nAnd for our targets \"get_gdb_arch\" returns hardcoded \"xtensa\" or \"riscv:rv32\"\n\nhttps://github.com/espressif/openocd-esp32/blob/master/src/target/espressif/esp32.c#L656\nhttps://github.com/espressif/openocd-esp32/blob/master/src/target/xtensa/xtensa.c#L3192\n\nhttps://github.com/espressif/openocd-esp32/blob/master/src/target/riscv/riscv.c#L1751\n\nAm I missing something?","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"658190a91629d3e983e900563e252fbb57d3c0fa","unresolved":false,"context_lines":[{"line_number":437,"context_line":"\tconst char *arch \u003d target_get_gdb_arch(target);"},{"line_number":438,"context_line":"\tif (arch) {"},{"line_number":439,"context_line":"\t\t/* TODO: riscv is not supported yet */"},{"line_number":440,"context_line":"\t\tif (strncmp(arch, \"xtensa\", 6) \u003d\u003d 0) {"},{"line_number":441,"context_line":"\t\t\tcmd_ctx-\u003ehw \u003d target_to_esp_xtensa(target)-\u003eapptrace.hw;"},{"line_number":442,"context_line":"\t\t} else {"},{"line_number":443,"context_line":"\t\t\tLOG_ERROR(\"Unsupported target arch \u0027%s\u0027!\", arch);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"9c8d0ca0_08566bf3","line":440,"in_reply_to":"fb814558_730e0781","updated":"2023-03-14 22:08:13.000000000","message":"OK, I understand your point and changed as you suggested. Also I will create a patch for the target_to_esp_semihost_data()","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":819,"context_line":"\t\tLOG_INFO(\"Targets connected.\");"},{"line_number":820,"context_line":"\telse"},{"line_number":821,"context_line":"\t\tLOG_INFO(\"Targets disconnected.\");"},{"line_number":822,"context_line":"\treturn res;"},{"line_number":823,"context_line":"}"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"uint8_t *esp_apptrace_usr_block_get(uint8_t *buffer, uint32_t *size)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"fdf74a7b_641c89d5","line":822,"updated":"2023-03-14 13:33:40.000000000","message":"arrived here, \u0027res\u0027 is equal to ERROR_OK.\nreturn ERROR_OK;","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":819,"context_line":"\t\tLOG_INFO(\"Targets connected.\");"},{"line_number":820,"context_line":"\telse"},{"line_number":821,"context_line":"\t\tLOG_INFO(\"Targets disconnected.\");"},{"line_number":822,"context_line":"\treturn res;"},{"line_number":823,"context_line":"}"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"uint8_t *esp_apptrace_usr_block_get(uint8_t *buffer, uint32_t *size)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"45b63973_4fd06640","line":822,"in_reply_to":"fdf74a7b_641c89d5","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":824,"context_line":""},{"line_number":825,"context_line":"uint8_t *esp_apptrace_usr_block_get(uint8_t *buffer, uint32_t *size)"},{"line_number":826,"context_line":"{"},{"line_number":827,"context_line":"\tstruct esp_apptrace_target2host_hdr tmp_hdr;"},{"line_number":828,"context_line":"\tmemcpy(\u0026tmp_hdr, buffer, sizeof(tmp_hdr));"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"\t*size \u003d tmp_hdr.wr_sz;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"bb5794f6_967f392b","line":827,"updated":"2023-03-14 13:33:40.000000000","message":"Is this struct exchanged between host and target?\nIf yes, then you should not rely on sizeof() to get the size as it could be compiler dependent (see gcc flag -fpack-struct), and you should convert the endianness.","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"ee2e2e20cb827e3733ada21b3b39f23a5d9c733d","unresolved":true,"context_lines":[{"line_number":824,"context_line":""},{"line_number":825,"context_line":"uint8_t *esp_apptrace_usr_block_get(uint8_t *buffer, uint32_t *size)"},{"line_number":826,"context_line":"{"},{"line_number":827,"context_line":"\tstruct esp_apptrace_target2host_hdr tmp_hdr;"},{"line_number":828,"context_line":"\tmemcpy(\u0026tmp_hdr, buffer, sizeof(tmp_hdr));"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"\t*size \u003d tmp_hdr.wr_sz;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"e0aa0cde_f1edd17d","line":827,"in_reply_to":"bb5794f6_967f392b","updated":"2023-03-22 07:57:26.000000000","message":"Is this struct exchanged between host and target? \n\nYes. I got rid of the sizeof and took into account endianness","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"8f5701e4fa592dc647d7cf3837ef67c5a4b0352a","unresolved":false,"context_lines":[{"line_number":824,"context_line":""},{"line_number":825,"context_line":"uint8_t *esp_apptrace_usr_block_get(uint8_t *buffer, uint32_t *size)"},{"line_number":826,"context_line":"{"},{"line_number":827,"context_line":"\tstruct esp_apptrace_target2host_hdr tmp_hdr;"},{"line_number":828,"context_line":"\tmemcpy(\u0026tmp_hdr, buffer, sizeof(tmp_hdr));"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"\t*size \u003d tmp_hdr.wr_sz;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5c646ebf_971a3abe","line":827,"in_reply_to":"e0aa0cde_f1edd17d","updated":"2023-03-31 10:48:15.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":1288,"context_line":"\told_state \u003d target-\u003estate;"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"\tif (strcmp(argv[0], \"start\") \u003d\u003d 0) {"},{"line_number":1291,"context_line":"\t\tres \u003d esp32_apptrace_cmd_init(target,"},{"line_number":1292,"context_line":"\t\t\t\u0026s_at_cmd_ctx,"},{"line_number":1293,"context_line":"\t\t\tmode,"},{"line_number":1294,"context_line":"\t\t\t\u0026argv[1],"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"6c7441ea_664286a3","line":1291,"updated":"2023-03-14 13:33:40.000000000","message":"this esp32_apptrace_cmd_init() is called from the TCL command \"apptrace\"\nAll its error messages should be send to command_print().\nInstead, it uses widely LOG_ERROR() and similar.\nYou should propagate struct command_invocation and use command_print() inside it.\nThis is valid for all the calls below: esp32_apptrace_connect_targets(), esp32_apptrace_cmd_stop(), ...","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"8f5701e4fa592dc647d7cf3837ef67c5a4b0352a","unresolved":false,"context_lines":[{"line_number":1288,"context_line":"\told_state \u003d target-\u003estate;"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"\tif (strcmp(argv[0], \"start\") \u003d\u003d 0) {"},{"line_number":1291,"context_line":"\t\tres \u003d esp32_apptrace_cmd_init(target,"},{"line_number":1292,"context_line":"\t\t\t\u0026s_at_cmd_ctx,"},{"line_number":1293,"context_line":"\t\t\tmode,"},{"line_number":1294,"context_line":"\t\t\t\u0026argv[1],"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"cd4d5a47_6ab06b94","line":1291,"in_reply_to":"177c1bc3_ede73f30","updated":"2023-03-31 10:48:15.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"22c106bf4524380452ef78ac42a61d4e5130ce89","unresolved":true,"context_lines":[{"line_number":1288,"context_line":"\told_state \u003d target-\u003estate;"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"\tif (strcmp(argv[0], \"start\") \u003d\u003d 0) {"},{"line_number":1291,"context_line":"\t\tres \u003d esp32_apptrace_cmd_init(target,"},{"line_number":1292,"context_line":"\t\t\t\u0026s_at_cmd_ctx,"},{"line_number":1293,"context_line":"\t\t\tmode,"},{"line_number":1294,"context_line":"\t\t\t\u0026argv[1],"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"177c1bc3_ede73f30","line":1291,"in_reply_to":"6c7441ea_664286a3","updated":"2023-03-22 09:51:02.000000000","message":"I tried to address this. In an error case, if a message needs to be printed and execution needs to be stopped, I used command_print. If there is an error/warning but the execution doesn\u0027t need to stop, I used LOG_XX\n\nSome nested calls, sorry if I missed something.","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0eb45fb0eca95f5c379cfbcab9aa58620c697ffa","unresolved":true,"context_lines":[{"line_number":308,"context_line":"\tstruct hlist_head *head \u003d \u0026ctx-\u003efree_trace_blocks;"},{"line_number":309,"context_line":"\tstruct hlist_node *tmp, *pos \u003d head-\u003efirst;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\thlist_for_each_safe(pos, tmp, head) {"},{"line_number":312,"context_line":"\t\tcur \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":313,"context_line":"\t\tif (cur) {"},{"line_number":314,"context_line":"\t\t\thlist_del(\u0026cur-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"de5d5227_a8a9e94f","line":311,"updated":"2023-03-15 10:26:33.000000000","message":"in the implementation of hlist_for_each_safe(), the first action is:\npos \u003d head-\u003efirst\nremove the initialization of pos two lines above.\nAlso in line 322","commit_id":"5b4b12f7d7a8d1b39a75ed56645a19a059447851"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"926004a5750fd703801f9c658a3f34548b95e8a8","unresolved":false,"context_lines":[{"line_number":308,"context_line":"\tstruct hlist_head *head \u003d \u0026ctx-\u003efree_trace_blocks;"},{"line_number":309,"context_line":"\tstruct hlist_node *tmp, *pos \u003d head-\u003efirst;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\thlist_for_each_safe(pos, tmp, head) {"},{"line_number":312,"context_line":"\t\tcur \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":313,"context_line":"\t\tif (cur) {"},{"line_number":314,"context_line":"\t\t\thlist_del(\u0026cur-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"48bcaa8b_a4e7a013","line":311,"in_reply_to":"6b7ae0e0_db7c52fa","updated":"2023-03-21 20:49:46.000000000","message":"Done","commit_id":"5b4b12f7d7a8d1b39a75ed56645a19a059447851"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0b2e2ef4d95be8e479baf8c30fac76881ca557fe","unresolved":true,"context_lines":[{"line_number":308,"context_line":"\tstruct hlist_head *head \u003d \u0026ctx-\u003efree_trace_blocks;"},{"line_number":309,"context_line":"\tstruct hlist_node *tmp, *pos \u003d head-\u003efirst;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\thlist_for_each_safe(pos, tmp, head) {"},{"line_number":312,"context_line":"\t\tcur \u003d hlist_entry(pos, struct esp32_apptrace_block, node);"},{"line_number":313,"context_line":"\t\tif (cur) {"},{"line_number":314,"context_line":"\t\t\thlist_del(\u0026cur-\u003enode);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"6b7ae0e0_db7c52fa","line":311,"in_reply_to":"de5d5227_a8a9e94f","updated":"2023-03-15 10:36:30.000000000","message":"Thanks. I was planning to go over all list related changes today.","commit_id":"5b4b12f7d7a8d1b39a75ed56645a19a059447851"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d186482c33d5853c53184eaf4b09eda7d09c2b32","unresolved":true,"context_lines":[{"line_number":317,"context_line":"\t\t\tfree(cur-\u003edata);"},{"line_number":318,"context_line":"\t\t\tfree(cur);"},{"line_number":319,"context_line":"\t\t}"},{"line_number":320,"context_line":"\t\tpos \u003d tmp;"},{"line_number":321,"context_line":"\t}"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"\thead \u003d \u0026ctx-\u003eready_trace_blocks;"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"f0cbcadb_c6772bb6","line":320,"updated":"2023-04-01 21:12:22.000000000","message":"you can remove this line\npos \u003d tmp;\nas it is already part of list_for_each_safe()","commit_id":"088972159277aca0391955dfd34cf69cbc977415"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"da2bcd38130913b9ca2e4daab9669196c84345a2","unresolved":false,"context_lines":[{"line_number":317,"context_line":"\t\t\tfree(cur-\u003edata);"},{"line_number":318,"context_line":"\t\t\tfree(cur);"},{"line_number":319,"context_line":"\t\t}"},{"line_number":320,"context_line":"\t\tpos \u003d tmp;"},{"line_number":321,"context_line":"\t}"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"\thead \u003d \u0026ctx-\u003eready_trace_blocks;"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"bb6b2187_a01006b4","line":320,"in_reply_to":"f0cbcadb_c6772bb6","updated":"2023-04-01 22:12:13.000000000","message":"Done","commit_id":"088972159277aca0391955dfd34cf69cbc977415"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d186482c33d5853c53184eaf4b09eda7d09c2b32","unresolved":true,"context_lines":[{"line_number":329,"context_line":"\t\t\tfree(cur-\u003edata);"},{"line_number":330,"context_line":"\t\t\tfree(cur);"},{"line_number":331,"context_line":"\t\t}"},{"line_number":332,"context_line":"\t\tpos \u003d tmp;"},{"line_number":333,"context_line":"\t}"},{"line_number":334,"context_line":"}"},{"line_number":335,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":18,"id":"baca239f_8ef933b6","line":332,"updated":"2023-04-01 21:12:22.000000000","message":"ditto","commit_id":"088972159277aca0391955dfd34cf69cbc977415"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"da2bcd38130913b9ca2e4daab9669196c84345a2","unresolved":false,"context_lines":[{"line_number":329,"context_line":"\t\t\tfree(cur-\u003edata);"},{"line_number":330,"context_line":"\t\t\tfree(cur);"},{"line_number":331,"context_line":"\t\t}"},{"line_number":332,"context_line":"\t\tpos \u003d tmp;"},{"line_number":333,"context_line":"\t}"},{"line_number":334,"context_line":"}"},{"line_number":335,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":18,"id":"b9783223_351ee402","line":332,"in_reply_to":"baca239f_8ef933b6","updated":"2023-04-01 22:12:13.000000000","message":"Done","commit_id":"088972159277aca0391955dfd34cf69cbc977415"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d186482c33d5853c53184eaf4b09eda7d09c2b32","unresolved":true,"context_lines":[{"line_number":492,"context_line":"\t}"},{"line_number":493,"context_line":"\tif (duration_start(\u0026cmd_ctx-\u003eidle_time) !\u003d 0) {"},{"line_number":494,"context_line":"\t\tLOG_ERROR(\"Failed to start idle time measurement!\");"},{"line_number":495,"context_line":"\t\tcommand_print(cmd, \"Failed to start idle time measurement!\");"},{"line_number":496,"context_line":"\t\tesp32_apptrace_cmd_ctx_cleanup(cmd_ctx);"},{"line_number":497,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":498,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"4f17b8ce_663b3a52","line":495,"updated":"2023-04-01 21:12:22.000000000","message":"Do you need both LOG_ERROR() and command_print(), or it is a left over?","commit_id":"088972159277aca0391955dfd34cf69cbc977415"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"da2bcd38130913b9ca2e4daab9669196c84345a2","unresolved":false,"context_lines":[{"line_number":492,"context_line":"\t}"},{"line_number":493,"context_line":"\tif (duration_start(\u0026cmd_ctx-\u003eidle_time) !\u003d 0) {"},{"line_number":494,"context_line":"\t\tLOG_ERROR(\"Failed to start idle time measurement!\");"},{"line_number":495,"context_line":"\t\tcommand_print(cmd, \"Failed to start idle time measurement!\");"},{"line_number":496,"context_line":"\t\tesp32_apptrace_cmd_ctx_cleanup(cmd_ctx);"},{"line_number":497,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":498,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"6a4b9d4a_5e1580c1","line":495,"in_reply_to":"4f17b8ce_663b3a52","updated":"2023-04-01 22:12:13.000000000","message":"Left over. Removed.","commit_id":"088972159277aca0391955dfd34cf69cbc977415"}],"src/target/espressif/esp_xtensa.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"89cbb0e29645e459453c2c9517d47680a3cc56b2","unresolved":true,"context_lines":[{"line_number":12,"context_line":"#include \u003cstdbool.h\u003e"},{"line_number":13,"context_line":"#include \u003cstdint.h\u003e"},{"line_number":14,"context_line":"#include \u003ctarget/smp.h\u003e"},{"line_number":15,"context_line":"#include \"esp_xtensa.h\""},{"line_number":16,"context_line":"#include \"esp_xtensa_apptrace.h\""},{"line_number":17,"context_line":"#include \u003ctarget/register.h\u003e"},{"line_number":18,"context_line":"#include \"esp_xtensa.h\""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"b713481e_61ab607a","line":15,"updated":"2023-01-21 22:40:55.000000000","message":"already included 3 lines below. remove one of the two","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"087f6b3df396f66a7bc5fae8cae4a38a9ef75ded","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#include \u003cstdbool.h\u003e"},{"line_number":13,"context_line":"#include \u003cstdint.h\u003e"},{"line_number":14,"context_line":"#include \u003ctarget/smp.h\u003e"},{"line_number":15,"context_line":"#include \"esp_xtensa.h\""},{"line_number":16,"context_line":"#include \"esp_xtensa_apptrace.h\""},{"line_number":17,"context_line":"#include \u003ctarget/register.h\u003e"},{"line_number":18,"context_line":"#include \"esp_xtensa.h\""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"74e35941_b8d81a33","line":15,"in_reply_to":"b713481e_61ab607a","updated":"2023-01-22 20:19:52.000000000","message":"Done","commit_id":"81d0247d89e2503451d635a71ee029cd376bed30"}],"src/target/espressif/esp_xtensa_apptrace.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":120,"context_line":"\tres \u003d xtensa_queue_dbg_reg_write(xtensa, XDMREG_TRAXADDR, (xtensa-\u003ecore_config-\u003etrace.mem_sz - rd_sz) / 4);"},{"line_number":121,"context_line":"\tif (res !\u003d ERROR_OK)"},{"line_number":122,"context_line":"\t\treturn res;"},{"line_number":123,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":124,"context_line":"\t\tres \u003d xtensa_queue_dbg_reg_read(xtensa, XDMREG_TRAXDATA, unal_bytes);"},{"line_number":125,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":126,"context_line":"\t\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"26ff08d0_2a7d5090","line":123,"updated":"2023-03-14 13:33:40.000000000","message":"if (!IS_ALIGNED(size, 4)) {","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":120,"context_line":"\tres \u003d xtensa_queue_dbg_reg_write(xtensa, XDMREG_TRAXADDR, (xtensa-\u003ecore_config-\u003etrace.mem_sz - rd_sz) / 4);"},{"line_number":121,"context_line":"\tif (res !\u003d ERROR_OK)"},{"line_number":122,"context_line":"\t\treturn res;"},{"line_number":123,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":124,"context_line":"\t\tres \u003d xtensa_queue_dbg_reg_read(xtensa, XDMREG_TRAXDATA, unal_bytes);"},{"line_number":125,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":126,"context_line":"\t\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a604f3ad_a6f84f31","line":123,"in_reply_to":"26ff08d0_2a7d5090","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":146,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":147,"context_line":"\t\t\treturn res;"},{"line_number":148,"context_line":"\t}"},{"line_number":149,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":150,"context_line":"\t\tres \u003d xtensa_queue_dbg_reg_read(xtensa, XDMREG_TRAXDATA, unal_bytes);"},{"line_number":151,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":152,"context_line":"\t\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"e0ef05fd_dc10e76b","line":149,"updated":"2023-03-14 13:33:40.000000000","message":"if (!IS_ALIGNED(size, 4)) {","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":146,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":147,"context_line":"\t\t\treturn res;"},{"line_number":148,"context_line":"\t}"},{"line_number":149,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":150,"context_line":"\t\tres \u003d xtensa_queue_dbg_reg_read(xtensa, XDMREG_TRAXDATA, unal_bytes);"},{"line_number":151,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":152,"context_line":"\t\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"f901fe89_90b0055a","line":149,"in_reply_to":"e0ef05fd_dc10e76b","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":185,"context_line":"\t\tLOG_ERROR(\"Failed to exec JTAG queue!\");"},{"line_number":186,"context_line":"\t\treturn res;"},{"line_number":187,"context_line":"\t}"},{"line_number":188,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":189,"context_line":"\t\t/* copy the last unaligned bytes */"},{"line_number":190,"context_line":"\t\tmemcpy(buffer + size - (size \u0026 0x3UL), unal_bytes, size \u0026 0x3UL);"},{"line_number":191,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"e67ebf12_a938ef7a","line":188,"updated":"2023-03-14 13:33:40.000000000","message":"if (!IS_ALIGNED(size, 4)) {","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":185,"context_line":"\t\tLOG_ERROR(\"Failed to exec JTAG queue!\");"},{"line_number":186,"context_line":"\t\treturn res;"},{"line_number":187,"context_line":"\t}"},{"line_number":188,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":189,"context_line":"\t\t/* copy the last unaligned bytes */"},{"line_number":190,"context_line":"\t\tmemcpy(buffer + size - (size \u0026 0x3UL), unal_bytes, size \u0026 0x3UL);"},{"line_number":191,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"f73bf65c_ee55dc7b","line":188,"in_reply_to":"e67ebf12_a938ef7a","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":187,"context_line":"\t}"},{"line_number":188,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":189,"context_line":"\t\t/* copy the last unaligned bytes */"},{"line_number":190,"context_line":"\t\tmemcpy(buffer + size - (size \u0026 0x3UL), unal_bytes, size \u0026 0x3UL);"},{"line_number":191,"context_line":"\t}"},{"line_number":192,"context_line":"\treturn ERROR_OK;"},{"line_number":193,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"e3e2736d_e4e88c9b","line":190,"updated":"2023-03-14 13:33:40.000000000","message":"memcpy(buffer + ALIGN_DOWN(size, 4), unal_bytes, size \u0026 0x3UL);","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\t}"},{"line_number":188,"context_line":"\tif (size \u0026 0x3UL) {"},{"line_number":189,"context_line":"\t\t/* copy the last unaligned bytes */"},{"line_number":190,"context_line":"\t\tmemcpy(buffer + size - (size \u0026 0x3UL), unal_bytes, size \u0026 0x3UL);"},{"line_number":191,"context_line":"\t}"},{"line_number":192,"context_line":"\treturn ERROR_OK;"},{"line_number":193,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"9a343ebd_e889fb2b","line":190,"in_reply_to":"e3e2736d_e4e88c9b","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":227,"context_line":"\tint res \u003d xtensa_dm_queue_execute(\u0026xtensa-\u003edbg_mod);"},{"line_number":228,"context_line":"\tif (res !\u003d ERROR_OK)"},{"line_number":229,"context_line":"\t\treturn res;"},{"line_number":230,"context_line":"\tuint32_t val \u003d buf_get_u32(tmp, 0, 32);"},{"line_number":231,"context_line":"\tif (block_id)"},{"line_number":232,"context_line":"\t\t*block_id \u003d XTENSA_APPTRACE_BLOCK_ID_GET(val);"},{"line_number":233,"context_line":"\tif (len)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1e8d040b_f6db6d4e","line":230,"updated":"2023-03-14 13:33:40.000000000","message":"buf_get_u32() assumes buffer (and in this case also target) in little-endian.\ntarget_buffer_get_u32() is preferred, even if the specific target is only little-endian, to highlight in the code that this is a conversion from target to host","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":227,"context_line":"\tint res \u003d xtensa_dm_queue_execute(\u0026xtensa-\u003edbg_mod);"},{"line_number":228,"context_line":"\tif (res !\u003d ERROR_OK)"},{"line_number":229,"context_line":"\t\treturn res;"},{"line_number":230,"context_line":"\tuint32_t val \u003d buf_get_u32(tmp, 0, 32);"},{"line_number":231,"context_line":"\tif (block_id)"},{"line_number":232,"context_line":"\t\t*block_id \u003d XTENSA_APPTRACE_BLOCK_ID_GET(val);"},{"line_number":233,"context_line":"\tif (len)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"f50df4c1_6fc6a544","line":230,"in_reply_to":"1e8d040b_f6db6d4e","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":276,"context_line":"\tint res \u003d xtensa_dm_queue_execute(\u0026xtensa-\u003edbg_mod);"},{"line_number":277,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":278,"context_line":"\t\tLOG_ERROR(\"%s: writing DCR failed!\", target-\u003ecmd_name);"},{"line_number":279,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":280,"context_line":"\t}"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"cb5ccae9_1ebed168","line":279,"updated":"2023-03-14 13:33:40.000000000","message":"return res; ??","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":276,"context_line":"\tint res \u003d xtensa_dm_queue_execute(\u0026xtensa-\u003edbg_mod);"},{"line_number":277,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":278,"context_line":"\t\tLOG_ERROR(\"%s: writing DCR failed!\", target-\u003ecmd_name);"},{"line_number":279,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":280,"context_line":"\t}"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"b3153bc8_e0d2f475","line":279,"in_reply_to":"cb5ccae9_1ebed168","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"\tfor (uint32_t i \u003d 0; i \u003c bufs_num; i++)"},{"line_number":318,"context_line":"\t\ttotal_sz +\u003d buf_sz[i];"},{"line_number":319,"context_line":"\tif (total_sz \u0026 0x3UL) {"},{"line_number":320,"context_line":"\t\tcached_bytes \u003d 4 - (total_sz \u0026 0x3UL);"},{"line_number":321,"context_line":"\t\ttotal_sz \u003d ALIGN_UP(total_sz, 4);"},{"line_number":322,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5487330e_e51cc6a9","line":319,"updated":"2023-03-14 13:33:40.000000000","message":"if (!IS_ALIGNED(total_sz, 4)) {","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"\tfor (uint32_t i \u003d 0; i \u003c bufs_num; i++)"},{"line_number":318,"context_line":"\t\ttotal_sz +\u003d buf_sz[i];"},{"line_number":319,"context_line":"\tif (total_sz \u0026 0x3UL) {"},{"line_number":320,"context_line":"\t\tcached_bytes \u003d 4 - (total_sz \u0026 0x3UL);"},{"line_number":321,"context_line":"\t\ttotal_sz \u003d ALIGN_UP(total_sz, 4);"},{"line_number":322,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ff4c782e_192f82bc","line":319,"in_reply_to":"5487330e_e51cc6a9","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":328,"context_line":"\t\t/* if there are cached bytes from the previous buffer, combine them with the last"},{"line_number":329,"context_line":"\t\t * from the current buffer */"},{"line_number":330,"context_line":"\t\tif (cached_bytes) {"},{"line_number":331,"context_line":"\t\t\tif ((cached_bytes + bsz) \u003c sizeof(uint32_t))"},{"line_number":332,"context_line":"\t\t\t\tbytes_to_cache \u003d bsz;"},{"line_number":333,"context_line":"\t\t\telse"},{"line_number":334,"context_line":"\t\t\t\tbytes_to_cache \u003d sizeof(uint32_t) - cached_bytes;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"7731d798_13201a34","line":331,"updated":"2023-03-14 13:33:40.000000000","message":"so far you have compared cached_bytes with 4, now you switch to use sizeof(uint32_t)\nWhat about using sizeof(uint32_t) also above?","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":328,"context_line":"\t\t/* if there are cached bytes from the previous buffer, combine them with the last"},{"line_number":329,"context_line":"\t\t * from the current buffer */"},{"line_number":330,"context_line":"\t\tif (cached_bytes) {"},{"line_number":331,"context_line":"\t\t\tif ((cached_bytes + bsz) \u003c sizeof(uint32_t))"},{"line_number":332,"context_line":"\t\t\t\tbytes_to_cache \u003d bsz;"},{"line_number":333,"context_line":"\t\t\telse"},{"line_number":334,"context_line":"\t\t\t\tbytes_to_cache \u003d sizeof(uint32_t) - cached_bytes;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"712c6d67_368ffe5b","line":331,"in_reply_to":"7731d798_13201a34","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1309de611f61012cc087b0777514ae09d69e8e81","unresolved":true,"context_lines":[{"line_number":350,"context_line":"\t\t/* write full dwords */"},{"line_number":351,"context_line":"\t\tfor (unsigned int k \u003d bsz; k \u003e\u003d sizeof(uint32_t); k -\u003d sizeof(uint32_t)) {"},{"line_number":352,"context_line":"\t\t\tuint32_t temp \u003d 0;"},{"line_number":353,"context_line":"\t\t\tmemcpy(\u0026temp, cur_buf - sizeof(uint32_t), sizeof(uint32_t));"},{"line_number":354,"context_line":"\t\t\tres \u003d xtensa_queue_dbg_reg_write(xtensa, XDMREG_TRAXDATA, temp);"},{"line_number":355,"context_line":"\t\t\tif (res !\u003d ERROR_OK)"},{"line_number":356,"context_line":"\t\t\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1ff1cf16_e01e5720","line":353,"updated":"2023-03-14 13:33:40.000000000","message":"temp \u003d target_buffer_get_u32(...) ?","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d07813c3db132b6e95d7f2ab95a4b981f057bef1","unresolved":false,"context_lines":[{"line_number":350,"context_line":"\t\t/* write full dwords */"},{"line_number":351,"context_line":"\t\tfor (unsigned int k \u003d bsz; k \u003e\u003d sizeof(uint32_t); k -\u003d sizeof(uint32_t)) {"},{"line_number":352,"context_line":"\t\t\tuint32_t temp \u003d 0;"},{"line_number":353,"context_line":"\t\t\tmemcpy(\u0026temp, cur_buf - sizeof(uint32_t), sizeof(uint32_t));"},{"line_number":354,"context_line":"\t\t\tres \u003d xtensa_queue_dbg_reg_write(xtensa, XDMREG_TRAXDATA, temp);"},{"line_number":355,"context_line":"\t\t\tif (res !\u003d ERROR_OK)"},{"line_number":356,"context_line":"\t\t\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"94f03ac1_618b95bb","line":353,"in_reply_to":"1ff1cf16_e01e5720","updated":"2023-03-14 21:34:38.000000000","message":"Done","commit_id":"a41d5eb3aaa292c48397a5ee6d2abe7b982219df"}]}
