時事ネタです。
しばらくしたらきっと修正されると思いますので、それまでの我慢です。(たぶん)
なんか変じゃね……?
少し前にnRF Connect SDKの3.4.1がリリースされたのですがずっと放置していました。ただ、3.4.0を使っているとあまりにも3.4.1にしろとうるさいので渋々3.4.1を導入したんですよ……。
そしたらデバッグトレースがうまく動かなくなってしまったのです!!!
なお、SDK 3.4.1は関係ありません。
ただ、タイミング的にちょうど重なっていたので最初は完全に疑っていました。
Debugボタンを押してデバッグトレースを開始したらいきなり動作中になっている。でも実際にはMCUはハングアップしたような状態になっていて動いている気配がない。止めることももちろんできないし再起動もできない。
なんだこのデバッグコンソールのメッセージは
なんでデバッグトレース動かないんだ……なんだよこれはと格闘しているうちにデバッグコンソールに表示される文字がいつも見ているものとは違うことに気が付きました。
[rr:22] ✅ readMemory { count: 164, memoryReference: '0x200029b8' } --> { address: '0x200029b8',
data:
'zBUAIMwVACDMFQAgAAALAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElNAgAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAABIhAAgAIQFABAqACAQKgAg'... 92 more characters }
[rr:23] ✅ readMemory { count: 164, memoryReference: '0x20002a70' } --> { address: '0x20002a70',
data:
'vBUAILwVACC8FQAgAAAKAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAACAjAAg0IMFAMgqACDIKgAg'... 92 more characters }
[rr:24] ✅ readMemory { count: 164, memoryReference: '0x20003558' } --> { address: '0x20003558',
data:
'HDYAIBw2ACAcNgAgAAD/AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFg1ACAAAAAAAAAAAAAAAAAIAAAAAAAAAP////+IvgAgAAAAALA1ACCwNQAg'... 92 more characters }
[rr:25] ✅ readMemory { count: 164, memoryReference: '0x200034a0' } --> { address: '0x200034a0',
data:
'VBUAIFQVACBUFQAgAAD4AAIAAACMuwAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAABAuwAgAAAAAPg0ACD4NAAg'... 92 more characters }
[rr:26] ✅ readMemory { count: 164, memoryReference: '0x20003328' } --> { address: '0x20003328',
data:
'jFoAIIxaACCMWgAgAAAOAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIxaACAoMwAg//////////8IAAAAAAAAAAAAAADgtgAgAAAAAIAzACCAMwAg'... 92 more characters }
[rr:27] ✅ readMemory { count: 164, memoryReference: '0x200038d0' } --> { address: '0x200038d0',
data:
'HBYAIBwWACAcFgAgAAD4AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwWACDQOAAg//////////8AAAAAAAAAAAAAAACQyQAgAAAAACg5ACAoOQAg'... 92 more characters }
[rr:28] ✅ readMemory { count: 164, memoryReference: '0x200048a8' } --> { address: '0x200048a8',
data:
'bEkAIGxJACBsSQAgAQD/AAIAAAAAAAAAAAAAAAAAAADJeQUAAAAAAAAAAAAAAACAAAAAAKhIACAAAAAAAAAAAAAAAAAIAAAAAAAAAP////9I6AAgAAAAAABJACAASQAg'... 92 more characters }
[rr:29] ✅ readMemory { count: 164, memoryReference: '0x20004660' } --> { address: '0x20004660',
data:
'JEcAICRHACAkRwAgAAD2AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBGACAAAAAAAAAAAAAAAAAIAAAAAAAAAP////8IzgAgAAAAALhGACC4RgAg'... 92 more characters }
[rr:30] ✅ readMemory { count: 164, memoryReference: '0x20002e30' } --> { address: '0x20002e30',
data:
'jBUAIIwVACCMFQAgAAAOAAIAAAAAAAAAAAAAAAAAAADJeQUAAAAAAAAAAAAAAACAAAAAAAEAAAD//////////wAAAAAIAAAAAAAAAAAAAADYrgAgAAAAAIguACCILgAg'... 92 more characters }
[rr:31] ✅ readMemory { count: 164, memoryReference: '0x20004738' } --> { address: '0x20004738',
data:
'AAAAAAAAAAAAAAAAAQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMNgAIA1yBQD8awAgAAAAAAAAAAAIAAAAAAAAAAAAAAAA2AAgAAAAAJBHACCQRwAg'... 92 more characters }
最後のほうの一部抜粋ですが「こんなの表示されていたっけ……見たことないけどな……」と思っていました。そもそも表示される色からして違います。こんな色じゃなかった!
普段そんなにマジマジとデバッグコンソールを見ているわけじゃないですけど無意識の認知ってすごいですよね。
拡張機能がアップデートされていた
VSCode上でNordic製品を開発するための拡張機能であるnRF Connect for VSCodeですが、9/27(その後9/28にバグフィックスも緊急リリース)に最新版がリリースされていました。それがこちらです。
ざ~っと読み進めていくとこんなことが書いてあります。
Debugging UI and settings
Debugging View
Introduced the nrf-debug debug type and replaced the MiEngine binary with a new inline debug adapter.
Bundled SVD files for CPU architectures used by Nordic SoCs and updated selection of the correct file based on the build output.
Added a prompt to edit build configuration when no debug options are enabled.
だからなに?って感じですよね。仮にこれを読んでいたところで、この時点で何かを気が付くことはまずないです。
実は今まで使っていたデバッガーとは全然違うものだった
でもさ、今使っているデバッガーがなんていう名前かなんて知るはずないよね(笑)
どうやら今まで使っていたデバッガーはnrf-connectという名前のようです。
つまり!!!
今回のバージョンアップでデバッガーが刷新されたと言っているわけです。そして、これが先ほど言っていた「こんなの表示されていたっけ……見たことないけどな……」に繋がってくるわけです。
自動更新に痛い目に遭わされるなんて
Nordic AIとひたすら会話しながらこの問題を解決しようとしましたが、結論としては「現時点ではnrf-debugはまともに動かない」というのが僕の判断です。さんざんやったけどダメだったので一応DevZoneにスレッドも立てておきました。
最近はAIが文章を考えてくれるので投稿するのが非常に楽になりましたw
