メモリ内にある命令のサイズを確認する必要があります (実際、メモリ内に小さなコード セグメントがあり、最初の命令のサイズを取得したい)。libopcodes と libbfd を見つけるのに時間がかかりました。ヘッダーを赤くして簡単な解決策を考え出そうとしましたが、プログラムが常にクラッシュするため、何かを誤解しているようです。
int main(int argc, char **argv) {
    disassemble_info *dis = malloc(sizeof(*dis));
    assert(dis != NULL);
    dis->arch = bfd_arch_i386;
    dis->read_memory_func = buffer_read_memory;
    dis->buffer_length = 64;
    dis->buffer = malloc(dis->buffer_length);
    memset(dis->buffer, 0x90, dis->buffer_length);
    disassemble_init_for_target(dis);
    int instr_size = print_insn_i386(0, dis);
    printf("instruction size is %d\n", instr_size);
    return 0;
}
期待される結果は、命令サイズ 1 です ( nop)。
編集:
すみません、私は愚かな人です。
memset(dis, 0, sizeof(*dis));