Let's face it, procedural is just plain easier to debug because you can more easily split it into digestible and dissect-able chunks: divide-and-conquer. Perhaps functional and logical CAN readily have such features, but nobody either figured how, or have not figured out how to explain how to do dissection to normal people. (This is sometimes a criticism of SQL also, but the added WITH clause helps break up big queries into multiple smaller ones.)
For example, with a procedural loop you can stick a debug statement in the middle to look at just about anything:
while (x=foo(y,z)) {
a = doStuff(x, z);
console.write("x={?},y={?},z={?},a={?}", x, y, z, a);
}
For example, with a procedural loop you can stick a debug statement in the middle to look at just about anything: