)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"af789a69f8eddd1014f5d7125f9fdf0884e60ab5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"12be8018_36be2b0b","updated":"2025-09-23 16:20:31.000000000","message":"Thanks for the patch.\nCould you please adjust the command syntax to allow also the simplest case\n`bp 0x24000412`\nwithout having to write `default` or numeric length?","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"3c96dde70f5afcf79686800afdd0814ef134f217","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"355942c8_8f96629e","updated":"2025-10-02 12:40:11.000000000","message":"Thanks for the review!","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"5b5dff06cd4bbe6e30f2a7756e3fac9866c66338","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d923bb84_0479c6a4","updated":"2025-09-08 14:51:12.000000000","message":"To see an implementation off the target-type-specific method visit: https://github.com/riscv-collab/riscv-openocd/pull/1288","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"3c96dde70f5afcf79686800afdd0814ef134f217","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ebd24109_4e4aec11","in_reply_to":"12be8018_36be2b0b","updated":"2025-10-02 12:40:11.000000000","message":"Consider the following cases:\n1. A breakpoint at some address, non-default length, the type is `hw`.\n2. A breakpoint at some address, default length and ASID specified, the type is also `hw`.\n\nIf `default` can be omitted, these two cases become indistinguishable -- it is not clear whether the 2nd argument is the ASID or the length of the breakpoint.","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8060e983178e74a58f01d163208e7847c71354a9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"84cc386e_1ebf175b","in_reply_to":"7c68981e_13df578a","updated":"2025-10-04 10:09:25.000000000","message":"Thanks for the patch. It is a welcome improvement handling the default length.\n\nI think that instead the length could be completely optional in the command line.\n\nOnce the command line starts getting complicated, we need to drop the simple\n`switch (CMD_ARGC) {`\nand move to a more advanced parsing, using something similar of the implementation of the function `target_configure()`.\nI\u0027m reworking the way command line parsing is done and adding new helpers. In mean time, the implementation in `target_configure()` is the closest to my target and I could easily rework/simplify it later to use the new helpers.\nPlease notice that `target_configure()` is a child function reused twice, where the parameter `index` is passed by the caller. In this breakpoint rework, the `index` should be initialized to zero.\n\nI think we can partially break the backward compatibility by using the following syntax options:\n- `bp` (print set breakpoints, same as old syntax)\n- `bp address` (set with default length, new syntax)\n- `bp address length` (set with length, same as old syntax)\n- Let `hw` appear anywhere and allow supporting also `-hw`. The first number is the `address` and the second, if present is the `length`:\n  `bp address length hw` (same as old syntax)\n  `bp address length -hw`\n  `bp [-]hw address`\n  `bp address [-]hw`\n  `bp [-]hw address length`\n  `bp address [-]hw length`\n- Deprecate `hw_ctx`\n  `bp asid length hw_ctx` (deprecated)\n- Deprecate strange syntax at 4 parameters\n  `bp address asid length [optional_unchecked_parameter]` (deprecated? should we drop this completely? Should we enforce the last parameter to be `hw_ctx`?)\n- add a `-asid` flag followed by the value. In this case adding `hw` or `-hw` anywhere should be allowed but has no effect because `-asid` implies HW breakpoint.\n  `bp -asid asid_value` (new syntax with default length)\n  `bp -asid asid_value length`\n  `bp length -asid asid_value`\n  `bp address -asid asid_value` (default length)\n  `bp -asid asid_value address` (default length)\n  `bp -asid asid_value address length`\n  `bp address -asid asid_value length`\n  `bp address length -asid asid_value`\n\nWhile the option `-sw` could be also added, I don\u0027t see any real value for it. It would only add more complexity in the command line handling.\n\nIn documentation list the three cases:\n```\n@deffn {Command} {bp}\n@deffnx {Command} {bp} address [length] [-hw | hw]\n@deffnx {Command} {bp} [address] [length] [-hw | hw] -asid asid\n```\nfor the usage field let\u0027s be less accurate and simply report:\n`[address] [length] [-hw | hw] [-asid asid]`\n\nFeel free to ask clarifications. I know such reworking of the command line parsing is quite tricky.","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"4ff5be8e88fc3c97ae6b2a03e96b245bb63258c3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bb4a525f_e5e8a742","in_reply_to":"84cc386e_1ebf175b","updated":"2025-10-13 12:04:15.000000000","message":"Thank you for your suggestions! \n\nI also think that allowing to specify options in any order will be much more user friendly. I will try to implement this.\n \nHowever, AFAIU the two cases with asid length and asid address are indistinguishable:\n\u003e bp -asid asid_value length \nbp -asid asid_value address","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"a074945d769ba1429a054ff0ebfd9ed5e15ebb4c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4efaf30c_a7f301b8","in_reply_to":"bb4a525f_e5e8a742","updated":"2025-10-18 16:47:12.000000000","message":"you are right!\nSo let\u0027s consider the meaning of them:\n1) `bp -asid asid_value`\n   asid only, means break as soon as the CPU switches to the new ID context.\n   Ignore address and length has no sense!\n2) `bp -asid asid_value length`\n   It has no sense because in 1) the length is ignored.\n   We can drop this syntax\n3) `bp -asid asid_value address`\n   it means break at address but only when CPU is running in ID context\n   length is default one\n4) `bp -asid asid_value address length`\n   it means break at address\u0026length but only when CPU is running in ID context\n   \nSo only 1) 3) and 4) should be implemented","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"2cbf2c1ac5327adcd8872c6929cadaa0058cfb91","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7c68981e_13df578a","in_reply_to":"ebd24109_4e4aec11","updated":"2025-10-03 05:50:14.000000000","message":"Don\u0027t take me wrong, I didn\u0027t ask for completely optional length: it would need at least some non-positional parameters like `-option`. It would be feasible and might render in more intuitive commands but would break compatibility with the old version.\n\nI wrote about the simplest case where only one parameter (address) is used - see the example.\nAnd looking at this for second time I think we can omit `default` also when 2 specific parameters are given: address and the second is `hw` (not number). This two cases are the most frequent so it\u0027s worth to make the command syntax simpler.","commit_id":"337ee3f5a6c3449851d23ab7f35b9cfaa32c0e56"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"6a40576b433d336b22a449830600fdd8db502146","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"35f7fbf5_e17684a8","updated":"2026-03-13 14:34:44.000000000","message":"Correction. Reopened at 9493","commit_id":"4399e3528350d615d2aae84d1840e574c1e35ca2"}],"src/target/target_type.h":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8060e983178e74a58f01d163208e7847c71354a9","unresolved":true,"context_lines":[{"line_number":306,"context_line":"\t * not implemented, it\u0027s assumed to be 32. */"},{"line_number":307,"context_line":"\tunsigned int (*data_bits)(struct target *target);"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"\tint (*get_default_breakpoint_length)(struct target *target, target_addr_t addr,"},{"line_number":310,"context_line":"\t\tuint32_t asid, int hw, unsigned int *length);"},{"line_number":311,"context_line":"};"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"2c905ec7_91c29fe9","line":309,"updated":"2025-10-04 10:09:25.000000000","message":"Please move this above, ~line 156 between API for add and remove breakpoints.\nAnd please add a minimal description, e.g.:\n```\n/* Optional. Reports the default length for a breakpoint. */\n```","commit_id":"7794f42ba147212e7c9b9f25262f1c3e03a52df9"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"a074945d769ba1429a054ff0ebfd9ed5e15ebb4c","unresolved":true,"context_lines":[{"line_number":153,"context_line":"\tint (*add_breakpoint)(struct target *target, struct breakpoint *breakpoint);"},{"line_number":154,"context_line":"\tint (*add_context_breakpoint)(struct target *target, struct breakpoint *breakpoint);"},{"line_number":155,"context_line":"\tint (*add_hybrid_breakpoint)(struct target *target, struct breakpoint *breakpoint);"},{"line_number":156,"context_line":"\tint (*get_default_breakpoint_length)(struct target *target, target_addr_t addr,"},{"line_number":157,"context_line":"\t\tuint32_t asid, int hw, unsigned int *length);"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"\t/* remove breakpoint. hw will only be updated if the target"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"b8ead929_41691bcb","line":156,"updated":"2025-10-18 16:47:12.000000000","message":"Please add the comment\n`/* Optional. Reports the default length for a breakpoint. */`\nbefore this line","commit_id":"4399e3528350d615d2aae84d1840e574c1e35ca2"}]}
