In transport.c:

1. I use "transport select jtag", in jim_transport_select, argv[0]->bytes is
"select", so argv[1]->bytes should be used.
2. In allow_transports function:
[code]
  while (*vector)
   LOG_DEBUG("allow transport '%s'", *vector++);
[/code]

LOG_DEBUG is:
[code]
#define LOG_DEBUG(expr ...) \
  do { \
   if (debug_level >= LOG_LVL_DEBUG) \
    log_printf_lf(LOG_LVL_DEBUG, \
     __FILE__, __LINE__, __func__, \
     expr); \
  } while (0)
[/code]

such code will be expanded to:
[code]
  while (*vector)
   do { \
   if (debug_level >= ) \
    log_printf_lf(LOG_LVL_DEBUG, \
     __FILE__, __LINE__, __func__, \
     ("allow transport '%s'", *vector++); \
  } while (0);
[/code]
The problem is that, if debug_level < LOG_LVL_DEBUG, vector++ will not
execute, and the program dies here.
It should be:
[code]
  while (*vector)
  {
   LOG_DEBUG("allow transport '%s'", *vector);
   vector++;
  }
[/code]

-- 
Best Regards, SimonQian
http://www.SimonQian.com
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to